Hallo,
ich habe zwei Tabellen:
Tabelle `produkt`: [pid],[name]
Tabelle `verwendung`: [id],[pid],[verwendungsart],[eingangszeit]
| id | pid | verwendungsart | eingangszeit |
| 1 | 1 | 17 | 17:15 |
| 2 | 1 | 0 | 17:23 |
| 3 | 1 | 0 | 17:44 |
| 4 | 2 | 0 | 17:49 |
| 5 | 2 | 19 | 18:11 |
Verwendungsart ist ein Index auf die Verwendungsartentabelle (verwendungsart=0 heisst nicht zugeordnet)
produkt und verwendung sind über pid verknüpft (1:n)
Ich brauche eine Abfrage für ein Endlosformular:
Alle Produkte als Liste, zudem eine Anzahl der Produkte, welche noch keine Verwendungsart haben.
Das Resultat wäre mit obigen Beispieltabellen wie folgt gewünscht:
| pid | name | bestand |
| 1 | Stuhl | 2 |
| 2 | Tisch | 1 |
Also der Workflow ist folgender:
Produkte (Tische, Stühle, etc.) treffen ein und jedem Produkt wird die Ankunftzeit (zwecks späterer Auswertung) zugeordnet (und damit ist das jeweilige Produkt verfügbar zur Verwendung). Bei Verwendung muss ich jetzt z.B. wissen ob genug Stühle für eine Bestuhlung da sind.
Wird etwas verwendet, dann erhalten die verwendeten Produkte eine Verwendungsart (>0) und sind somit nicht mehr verfügbar.
Folgende SQL-Query habe ich zusammengestellt, aber die funktioniert nicht (es gibt irgendwelche Probleme mit der Having-Klausel, deren Lösung ich aber nicht finden kann):
SELECT produkt.pid, produkt.bezeichnung, Count(verwendung.id) AS bestand
FROM produkt LEFT JOIN verwendung ON produkt.pid = verwendung.pid
GROUP BY produkt.pid, produkt.bezeichnung, Count(verwendung.id)
HAVING (verwendung.verwendungsart<1)Hat jemand eine Idee? Oder alternative Vorschläge?
Danke, mit WHERE funktioniert es.
Und ich dachte schon, ich kenne mich aus mit SQL... :D