Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

letzte Woche eines Monats selectieren

Frage Entwicklung Datenbanken

Mitglied: Messiah-net

Messiah-net (Level 1) - Jetzt verbinden

03.07.2008, aktualisiert 08.07.2008, 3371 Aufrufe, 9 Kommentare

Hi

Ich habe eine Tabelle mit eine Datum (leider ein char(17) --> 20080703 14:58:32)

Jetzt möchte ich in einem SELECT * nur die Werte haben die NICHT in der letzten Woche eines Monats sind.
Mitglied: Logan000
03.07.2008 um 16:24 Uhr
Moin
Was genau ist denn die letzte Woche eines Monats?
Die letzen 7 Tage?
Oder die letzte Kalenderwoche des Monats?
Oder die letzte Arbeitswoche?

Gruß L.
Bitte warten ..
Mitglied: Logan000
03.07.2008 um 16:38 Uhr
Egal hier ein Bsp. für die letzten 7 tage:

SELECT * FROM Tabelle
WHERE cast(datum as Datetime)
Not BETWEEN
cast( '01.'+ cast(Month(cast(datum as Datetime))+1 as varchar(50)) + '.2008 01:01:01' as datetime) -8
AND
cast( '01.'+ cast(Month(cast(datum as Datetime))+1 as varchar(50)) + '.2008 01:01:01' as datetime) -1

(Auf einen SQL 2005 getestet.)
Gruß L.
Bitte warten ..
Mitglied: Messiah-net
03.07.2008 um 17:02 Uhr
HI!
JA genau DAS soll es sein
Sieht auch ganz gut aus, allerding habe ich ein Problem, folgender Code funktioniert nicht:

SELECT * FROM aaaa
WHERE
(updatedOn NOT IN (SELECT TOP 3 updatedOn FROM aaaa ORDER BY updatedBy, updatedOn DESC))
AND (updatedOn NOT IN (SELECT TOP 1 updatedOn FROM aaaa ORDER BY updatedBy, updatedOn ASC))

AND CAST(updatedOn as DATETIME)
NOT BETWEEN CAST( '01.' + CAST(MONTH(CAST(updatedOn AS DATETIME)) + 1 AS VARCHAR(50)) + '.2008 01:01:01' AS DATETIME) -8
AND CAST( '01.'+ CAST(MONTH(CAST(updatedON AS DATETIME))+1 AS VARCHAR (50)) + '.2008 01:01:01' AS DATETIME) -1

Und des weiteren, ist diese Variante an das Jahr 2008 gebunden!
Bitte warten ..
Mitglied: Logan000
04.07.2008 um 08:22 Uhr
Moin

Was genau funktioniert nicht.

Und des weiteren, ist diese Variante an das Jahr 2008 gebunden!
Ich wollte den Konvertierungsterror nicht zu weit treiben.

cast(Year(getdate()) as varchar(4)) liefert das akt. Jahr
Bitte warten ..
Mitglied: Messiah-net
04.07.2008 um 10:28 Uhr
Die TOP 3 Funktion funktioniert nicht.

Ich habe mehrere Personen (updatedBy) und will von jedem die letzten 3 Einträge NICHT haben
Bitte warten ..
Mitglied: Logan000
04.07.2008 um 11:13 Uhr
Natürlich nicht.
Wenn Du mehrere Personen hast und von jedem die letzen 3 Einträge nicht haben möchtest, Kommen ja mehr zusammen wie .
TOP liefert dir aber exakt die ersten 3 Einträge.
Bitte warten ..
Mitglied: Messiah-net
04.07.2008 um 11:57 Uhr
Danke, habe es jetzt folgendermasen gelöst:

SELECT *
FROM Budget AS tempTable1
WHERE updatedOn NOT BETWEEN
DATEADD("d", -7, DATEADD("d", -DAY(CAST(updatedOn as Datetime)), DATEADD("m", 1, CAST(updatedOn AS Datetime))))
AND
DATEADD("d", -DAY(CAST(updatedOn as Datetime)), DATEADD("m", 1, CAST(updatedOn AS Datetime)))
AND
tempTable1.updatedOn NOT IN(
(SELECT TOP 3 updatedOn
FROM Budget AS tempTable2
WHERE tempTable1.updatedby = tempTable2.updatedby ORDER BY updatedOn DESC)
)
;


Jetzt muss ich das nur noch in nen DELETE umwandeln, allerdings auch nicht so einfach, da ich ja temporäre tabellen habe
Bitte warten ..
Mitglied: Biber
05.07.2008 um 18:22 Uhr
Moin messiah_net,

Jetzt muss ich das nur noch in nen DELETE umwandeln, allerdings auch nicht so einfach, da ich ja temporäre tabellen habe
Wo denn? Ändere doch einfach die zuletzt gepostete Lösung so um, dass Du aus dem allerersten "SELECT *" ein "DELETE" machst.

Vielleicht bist Du ja auch gedanklich schon beim nächsten Problem, aber alle anderen, die hier mitlesen, sind immer noch bei "letzte Woche eines Monats selectieren".
Was macht denn diese Anforderung?
Ist das jetzt erledigt?

Dann können wir etwaige Probleme mit globalen oder userbezogenen temporary tables gerne in einem neuen Thread diskutieren.

Grüße
Biber
Bitte warten ..
Mitglied: Messiah-net
08.07.2008 um 13:44 Uhr
Das Problem hat sich gelöst (auch mit delete)
Allerings hab ich noch ne Zusatzaugabe

Jett hätte ich gerne die letzten 3 Einträge eines Users an verschiedenen Tagen....


SELECT * FROM Master AS master1 WHERE updatedOn NOT BETWEEN DATEADD("d", -6, DATEADD("d", -DAY(CAST(updatedOn as Datetime)), DATEADD("m", 1, CAST(updatedOn AS Datetime)))) AND DATEADD("d", -DAY(CAST(updatedOn as Datetime))+1, DATEADD("m", 1, CAST(updatedOn AS Datetime))) AND master1.updatedOn NOT IN((SELECT TOP 3 updatedOn FROM JBPMaster AS master2 WHERE master1.updatedBy = master2.updatedBy ORDER BY updatedOn DESC))
Bitte warten ..
Ähnliche Inhalte
Backup
Backup Wochen- Monats- Jahressicherung (14)

Frage von Meterpeter zum Thema Backup ...

Microsoft Office
gelöst Excel: Fixwerte pro Monate nach Monaten zuordnen (2)

Frage von sims zum Thema Microsoft Office ...

DSL, VDSL
Eine woche Magenta L (Update 11. Woche) (55)

Erfahrungsbericht von Lochkartenstanzer zum Thema DSL, VDSL ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...