Hallo zusammen!
Ich hab mir ein Query geschrieben, dass leider nicht die gewünschten Ergebnisse liefert. Jetzt wollte ich Fragen, ob ich es überhaupt so lösen kann, oder ob ich hier auf dem falschen Weg bin?
Ich möchte aus einer Restaurant Datenbank einige dinge selektieren, die ich am besten kurz beschreibe:
- Wenn d.FlOffen = -1 ist, dann ist der Kellner Anwesend und arbeitet gerade, mit COUNT möchte ich auf die Anzahl anwesender Kellner kommen.
- d1.brulohn (Lasst euch hier vom Spaltennamen nicht verwirren) ist der Betrag, den ein Kellner pro Stunde kostet, also z.b. 50.- Hier möchte ich den Durchschnittsbetrag aller anwesenden Kellner selektieren.
- In der Tabelle Bon werden alle gebuchten Artikel angezeigt. d2.PosWert ist der Umsatz, also BezogeneMenge*Verkaufspreis und davon möchte ich die Summe.
- als SummeEK möchte ich die Summe des Einkaufspreises aller verkauften Artikel. d3.ekakt ist der aktuelle Einkaufspreis des Artikels und d2.Menge, die Menge.
- Desweiteren möchte ich nur die Daten, die während der letzten Stunde generiert wurden, dass wollte ich mit "(DATEDIFF(hh, d2.BonDat, GETDATE()) ⇐ 1)" machen. d2.BonDat ist das genaue Datum und die Genaue Zeit, wann der Artikel gebucht wurde.
Ich hoffe ich konnte Euch mein Problem schildern und möchte mich bereits jetzt für Eure Hilfe bedanken!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | SELECT COUNT(d.FlOffen) AS AnzKellner, AVG(d1.brulohn) AS DurchschnittBruLohn, SUM(d2.PosWert) AS SummeUmsatz, SUM(d3.ekakt*d2.Menge) AS SummeEK FROM dbo.ZeitBuchung d, dbo.Kellner d1, dbo.Bon d2, dbo.Arti d3 WHERE d.FlOffen = '-1' AND d.kellnr = d1.Kellnr AND d3.artnr = d2.artnr AND (DATEDIFF(hh, d2.BonDat, GETDATE()) <= 1) |