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, 3339 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
DSL, VDSL
Eine woche Magenta L (Update 4. Woche) (55)

Erfahrungsbericht von Lochkartenstanzer zum Thema DSL, VDSL ...

Microsoft
Neue Sicherheitslücke in Windows - patch erst in einer Woche (1)

Link von keine-ahnung zum Thema Microsoft ...

Windows Server
Dieser active directory domänencontroller schein der letzte dns (3)

Frage von homermg zum Thema Windows Server ...

Windows 7
Texte weisen Fehler auf letzte Zeile wie Barcod Striche (3)

Frage von Nemonautilus zum Thema Windows 7 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...