Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: imp666 am März 17, 2011, 14:44:05

Titel: Hilfe bei SQL-Query
Beitrag von: imp666 am März 17, 2011, 14:44:05
Hallo,

ich habe zwei Tabellen:

Tabelle `produkt`: [pid],[name]

pidname
1Stuhl
2Tisch

Tabelle `verwendung`: [id],[pid],[verwendungsart],[eingangszeit]


idpidverwendungsarteingangszeit
111717:15
21017:23
31017:44
42017:49
521918: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:


pidnamebestand
1Stuhl2
2Tisch1

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?

Titel: Re: Hilfe bei SQL-Query
Beitrag von: lumbumba am März 17, 2011, 14:51:51
ic kann mich irren aba müsste es nicht
... (verwendung.verwendungsart)<1
lauten?
Titel: Re: Hilfe bei SQL-Query
Beitrag von: Wurliwurm am März 17, 2011, 17:38:23
Schreib mal statt  HAVING (verwendung.verwendungsart<1)
lieber  WHERE verwendung.verwendungsart < 1

Having ist eine Auswertung von berechneten aggregierten Werten. Die Verwendungsart kommt aber gar nicht vor in der Aggregierung.
Titel: Re: Hilfe bei SQL-Query
Beitrag von: imp666 am März 18, 2011, 08:22:00
Danke, mit WHERE funktioniert es.
Und ich dachte schon, ich kenne mich aus mit SQL...   :D