Moin, moin!
Ich stecke in einer SQL-Zwickmühle und hoffe, dass einer von euch mich befreien kann. Ich Habe zwei Tabellen, die miteinander verknüpft sind. Eine Tabelle Auftrag und eine Tabelle Positionen. Diese sind über die Auftragsnummer miteinander 1:N verknüpft.
Ich möchte jetzt eine SQL Anweisung schreiben, die mir die Anzahl aller Aufträge mit Produkt 100 in einer oder mehreren Positionen ermittelt. Wichtig ist, dass jeder Auftrag maximal nur ein mal gezählt wird, selbst wenn Produkt 100 in zwei Positionen des Auftrags vorhanden ist.
Normalerweise würde die Lösung so in der Art aussehen:
select count(\*) from
(
select auftrag
from aufträge
left join positionen on aufträge.auftrag=positionen.auftrag
group by auftrag
)
Mein Problem ist, dass ich auch SQLBase 11.5 arbeite und dort gibt es meines Wissens weder Nested Selects noch Subselects. Entweder das oder die Syntax dazu ist so obskur, dass ich sie nirgends finde.
Gibt es trotzdem eine Möglichkeit, das hinzubekommen?
Hier ein paar Beispieltabellen:
Aufträge
Auftrag| Kunde
1 | Muster 1
2 | Muster 2
3 | Muster 3
Positionen
Auftrag | Pos | Produkt
1 | 1 | 100
1 | 2 | 100
1 | 3 | 200
2 | 1 | 300
3 | 1 | 200
3 | 2 | 100