EKKi: Frage zu SQL Query

Beitrag lesen

Mahlzeit,

Zeitbuchung d, und Kellner d1 hängen mit den Kellnr zusammen. In der Zeitbuchung ist ja drin, ob ein Kellner anwesend ist oder nicht (d.FlOffen) und in der Kellner Tabelle d1 ist dann der d1.brulohn, also der Betrag, den der Kellner pro Stunde kostet.

Das ist mir schon klar. Aber es gibt keine Verbindung zwischen den beiden zusammenhängenden Tabellen d und d1 auf der einen und d2 und d3 auf der anderen Seite ... insofern ist's kein Wunder, wenn bei der Abfrage viel zu viele nicht zusammensammengehörende Daten herauskommen.

Ja, Joins hab ich nicht sooo im Griff und bei nem komplexeren Query lass ich die lieber weg, weil ich dann den Durchblick noch mehr verliere. Wäre aber für Vorschläge immer Dankbar!

Lass es dir aus eigener Erfahrung gesagt sein: INSBESONDERE bei komplexeren Abfragen sind explizite JOINs weitaus einfacher zu durchschauen - hauptsächlich weil sofort klar wird, wie welche Tabellen zusammenhängen und sich in der WHERE-Einschränkung nur noch inhaltliche Dinge befinden.

-----8<-----8<-----8<-----

SELECT [...]
  FROM dbo.ZeitBuchung d
  JOIN dbo.Kellner     d1 ON d.kellnr = d1.Kellnr
  JOIN dbo.Bon         d2 ON /* ??? */
  JOIN dbo.Arti        d3 ON d2.artnr = d3.artnr
 WHERE d.FlOffen  = '-1'
   AND (DATEDIFF(hh, d2.BonDat, GETDATE()) <= 1)

----->8----->8----->8-----

Spätestens wenn man deine Query so umschreibt, wird klar, was ich meine: es fehlt die Verknüpfung der Tabelle d2 mit dem Rest ...

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|