AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Suche Hilfe bei der Erstellung eines SQL-Statements
Thema durchsuchen
Ansicht
Themen-Optionen

Suche Hilfe bei der Erstellung eines SQL-Statements

Ein Thema von barnti · begonnen am 29. Jun 2006 · letzter Beitrag vom 30. Jun 2006
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Suche Hilfe bei der Erstellung eines SQL-Statements

  Alt 29. Jun 2006, 17:17
Datenbank: SQL Server 2000 • Zugriff über: Hibernate
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:
SELECT
   *
FROM
   Konto k, Kalender kal
WHERE
   k.id = kal.id
Diese Abfrage gibt mir alle Tage mit Datum, Wochentag und Stand des Kontos zurück. Das sieht dann so aus:
SQL-Code:
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
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...

Hat jemand eine Idee?
Gruß,

Barnti
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Suche Hilfe bei der Erstellung eines SQL-Statements

  Alt 29. Jun 2006, 17:36
Delphi-Quellcode:
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
)
Soll heißen: Zeige alle Zeilen, deren Datum kleiner ist als das kleinste Datum innerhalb der Woche ('Datepart ...'), dessen Stundenkontingent 0 ist.

Bitte prüfe die Rückgabewerte von DatePart, und die Einstellung 'Set DateFirst' (so ähnlich).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Suche Hilfe bei der Erstellung eines SQL-Statements

  Alt 30. Jun 2006, 08:06
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,
Gruß,

Barnti
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Suche Hilfe bei der Erstellung eines SQL-Statements

  Alt 30. Jun 2006, 17:27
Hallo barnti,

hier nochmal eine korrigierte Version...

SQL-Code:
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
Gruss
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz