Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3375 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 ...

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

Erfahrungsbericht von Lochkartenstanzer zum Thema DSL, VDSL ...

Vmware
gelöst Netzwerkauslastung NIC für eine Woche (3)

Frage von pablovic zum Thema Vmware ...

Neue Wissensbeiträge
Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(2)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (16)

Frage von Lynkon zum Thema TK-Netze & Geräte ...