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
GELÖST

Dynamische SQL Abfrage nach Wochentag

Frage Entwicklung Datenbanken

Mitglied: BadFsaadKl

BadFsaadKl (Level 1) - Jetzt verbinden

30.01.2013, aktualisiert 08:45 Uhr, 6071 Aufrufe, 8 Kommentare

Dynamische SQL Abfrage je nach Wochentag

Moin zusammen,

ich habe eine SQL Abfrage, welche mir je nach Wochentag einen anderen Intervall nehmen soll.


SELECT
FROM
change ch
WHERE
ch.closedate >= SYSDATE -24/24


Hier ist die Frage wie ich den Stundenintervall dynamisch einstellen kann.

Ziel ist das der Bereich SYSDATE folgend bezogen wird.

Dienstag - Sonntag = SYSDATE -24/24
Montag = SYSDATE -96/24

Mittels folgendem Code bekomme ich ja den jetzigen Wochentag raus:


SELECT to_char(SYSDATE,'Day') from dual


Nur jetzt möchte ich wie gesagt abfragen, je nachdem was für ein Wochentag ist, soll ein anderer Zeitraum genommen werden.

Wie kann ich das als Variable deklarieren, bzw. habt Ihr eine Idee ?

Merci
Mitglied: nxclass
30.01.2013, aktualisiert um 08:59 Uhr
Hi,

werte die Rückgabe der TO_CHAR() Funktion in einem IF oder CASE aus.

http://www.techonthenet.com/oracle/loops/if_then.php
Bitte warten ..
Mitglied: LianenSchwinger
30.01.2013, aktualisiert um 09:16 Uhr
Hallo,

einfach in der WHERE-Klausel ein CASE Konstrukt bauen.

z.B.

01.
SELECT co.order_no, co.date_entered 
02.
FROM customer_order co 
03.
WHERE CASE WHEN TO_CHAR(SYSDATE,'D') <= 5  
04.
           THEN SYSDATE -24/24 
05.
           ELSE SYSDATE -96/24 
06.
      END <= co.date_entered
Es ist übrigens immer ganz hilfreich, wenn man die verwendetet Datenbank angibt (MySQL, Oracle, Access ...)

Gruß Jörg
Bitte warten ..
Mitglied: BadFsaadKl
30.01.2013 um 09:10 Uhr
Moin,

bin im SQL mit den IF Schleifen net so fit. Aber funktioniert irgendwie net.

IF select to_char(sysdate,'Day') from dual = 'Montag' THEN
SELECT
FROM
change ch
WHERE
ch.closedate >= SYSDATE -96/24
ELSE
SELECT
FROM
change ch
WHERE
ch.closedate >= SYSDATE -24/24
END IF

Diese Variante ist aber auch bissle Umständlich, da mein eigentliches SQL Statement um eingies größer ist.
Und der Übersichthalber würde ich (falls möglich) eher mit Variablen arbeiten.
Bitte warten ..
Mitglied: LianenSchwinger
30.01.2013 um 09:21 Uhr
... übrigens wass soll das mit dem -24/24 (= -1) und -96/24 (= -3) ?!?
Da kannst Du auch direkt -1 bzw. -3 nehmen. Wenn Du die vollen Tage ohne Uhrzeit möchtest musst Du das jeweilige Datum wandeln oder beschneiden z.B. TRUNC(SYSDATE).

Gruß Jörg
Bitte warten ..
Mitglied: BadFsaadKl
30.01.2013 um 09:33 Uhr
Moin,

Betrifft eine Oracle DB.

Habe es jetzt wie folgt gelöst.
WHERE
CASE WHEN TO_CHAR(SYSDATE,'D') = '1'
THEN SYSDATE -96/24
ELSE SYSDATE -24/24
END <= ch."closeddate"
ORDER BY ch."closeddate" ASC

Der Punkte mit den -24/24 und -96/24 ist nötig, da ich den genauen Stundenintervall benötige.
Bitte warten ..
Mitglied: LianenSchwinger
30.01.2013, aktualisiert um 09:49 Uhr
Hallo,

dann hat meine Version ja funktioniert.

Bei Oracle (und ich denke bei allen anderen auch ) ergibt

01.
SYSDATE-24/24 
02.
SYSDATE-1
das selbe Ergebnis.

Und bitte noch den Thread als gelöst markieren.

Gruß Jörg
Bitte warten ..
Mitglied: BadFsaadKl
30.01.2013 um 10:11 Uhr
Moin Jörg,

ja, hätte auch funktioniert.

nur wenn Chef sagt, er will es im Stundentakt so angegeben habe, dann mach ich das halt.
Auch wenn ich 4 Zeichen mehr tippen muss
Bitte warten ..
Mitglied: LianenSchwinger
30.01.2013, aktualisiert um 10:35 Uhr
... man kann auch dem Chef mal wiedersprechen. bzw. sollte man auch um zu zeigen, dass man auch Ahnung hat.

Ich korrigiere die SQL-Scripte meines Chefs wenn ich die zu grottig finde oder die Performanz nicht stimmt.

Gruß Jörg
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Datenbanken
gelöst Schleifen in SQL-Abfrage bei 2 Tabellen (2)

Frage von Aximand zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...