SQL Nested Select umgehen

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

Moin,

Mein Problem ist, dass ich auch SQLBase 11.5 arbeite und dort
gibt es meines Wissens weder Nested Selects noch Subselects.

das hieße, dass SQLBase keine Datenbank wäre, sondern ein wasweißdennichfüreinSch…
Ich bin mal ganz mutig und glaube das nicht.

Gruß Ralf

ungefähr so was ?
Servus,

probier mal

SELECT count(DISTINCT aufträge.auftrag)
FROM aufträge
LEFT JOIN positionen ON aufträge.auftrag=positionen.auftrag
WHERE positionen.produkt = 100
GROUP BY auftrag

Ist es das was du wolltest ?

Gruss,
SomeOne

Wenn ich das Richitg verstehe brauchst du nur eine Tabelle

select distinct position.aufträge from aufträge where position = 100

oder ?