![]() |
Datenbank: SQL Server 2000 • Zugriff über: Hibernate
Suche Hilfe bei der Erstellung eines SQL-Statements
Hallo liebe Gemeinde,
lang ist es her. Umsomehr freue ich mich mal wieder reinzuschnuppern. Natürlich habe ich auch eine Frage. Ich möchte folgende DB-Abfrage formulieren:
SQL-Code:
Diese Abfrage gibt mir alle Tage mit Datum, Wochentag und Stand des Kontos zurück. Das sieht dann so aus:
SELECT
* FROM Konto k, Kalender kal WHERE k.id = kal.id
SQL-Code:
Meine Frage: Wenn ein Wochentag(also nicht Sa, So) keine Stunden mehr hat(siehe Markierung <----), sollen weitere Zeilen nicht mehr erscheinen. Das heißt ich möchte die Query dahin einschränken...
TAG DATUM STUNDENKONTINGENT
Mo, 03.07.2006 2 Di, 04.07.2006 3 Mi, 05.07.2006 2 Do, 06.07.2006 5 Fr, 07.07.2006 4 Sa, 08.07.2006 0 So, 09.07.2006 0 Mo, 10.07.2006 1 Di, 11.07.2006 2 Mi, 12.07.2006 0 <------------ Do, 13.07.2006 2 Fr, 14.07.2006 3 Sa, 15.07.2006 3 So, 16.07.2006 2 Hat jemand eine Idee? |
Re: Suche Hilfe bei der Erstellung eines SQL-Statements
Delphi-Quellcode:
Soll heißen: Zeige alle Zeilen, deren Datum kleiner ist als das kleinste Datum innerhalb der Woche ('Datepart ...'), dessen Stundenkontingent 0 ist.
SELECT
* FROM Konto k, Kalender kal WHERE k.id = kal.id and kal.datum < (select min (k.datum) from kalender k join konto t on k.id = k.id where datepart (day,k.datum) in (1,2,3,4,5) and t.stundenkontingent = 0 ) Bitte prüfe die Rückgabewerte von DatePart, und die Einstellung 'Set DateFirst' (so ähnlich). |
Re: Suche Hilfe bei der Erstellung eines SQL-Statements
Hallo alzaimar,
das werde ich nächste Woche mal testen. Danke schon einmal. Ich muss jetzt zum Fan Fest. Fußi geht bald los. Viel Spaß beim Viertelfinale, |
Re: Suche Hilfe bei der Erstellung eines SQL-Statements
Hallo barnti,
hier nochmal eine korrigierte Version...
SQL-Code:
Gruss
SELECT CASE DATEPART(dw, datum)
WHEN 1 THEN 'Mo' WHEN 2 THEN 'Di' WHEN 3 THEN 'Mi' WHEN 4 THEN 'Do' WHEN 5 THEN 'Fr' WHEN 6 THEN 'Sa' WHEN 7 THEN 'So' END tag, CONVERT(VARCHAR, datum, 104) datum, stundenkontingent FROM konto k INNER JOIN kalender kal ON k.id = kal.id WHERE kal.datum < (SELECT MIN(k.datum) FROM kalender k INNER JOIN konto t ON k.id = t.id WHERE DATEPART(dw, k.datum) IN (1,2,3,4,5) AND t.stundenkontingent = 0) ORDER BY datum Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz