Abfrage mit If oder auch nicht?

evil_knievel

Grünschnabel
Hallo

Ich möchte eine Tabelle auslesen, aber nur bestimmt Werte.

Es handelt sich um Rechnungen. Wurde zu dieser Rechnung aber eine Storno erstellt, dann soll es nicht ausgelesen werden

Beispiel Tabelle

id | Kunde | typ | Betrag | hauptid
1 | 1 | 1 | 12 | 0
2 | 1 | 2 |-12 | 1
3 | 1 | 1 | 15 | 0
4 | 2 | 1 | 11 | 0
5 | 3 | 1 | 16 | 0

Typ 1 ist die Rechnung, Typ 2 ein Storno
Ist die hauptid 0 gibt es keinien Bezug auf eine andere RG,
ist die hauptid !=0, dann soll die id in hauptid auch nicht mit ausgelesen werden.
Somit soll in diesem Beispiel nur id 3 ausgelesen werden, weil id2 mit Ihrem typ 2 und der hauptid 1 die id 1 wählt.
id 4 und 5 natürlich auch, die haben ja auch nichts mit Kunde 1 zu tun.

SELECT id, kunde, typ, betrag, hauptid FROM tabelle where ( typ!=2 and ? )

Besteht überhaupt die Möglichkeit das in einer Abfrage zu machen, oder muss ich erst alle mit dem Typ 2 auslesen, und in der nächsten Abfrage
alle mit der hauptid dann ausgrenzen?
Ich habe mir "if" für "mysql abfragen" dazu angeschaut, das half aber auch nicht weiter.

Ich hoffe Ihr könnt mir helfen, THX
 
So, habe es selbst gelöst bekommen. Für die die ein ähnliches Problem haben oder eventuell mal haben werden:

Lösung für mein Problem ist wohl "not in"

SELECT id, kunde, typ, betrag, hauptid FROM tabelle where typ!=2 and id not in (select hauptid from tabelle where hauptid!="0")
 

Neue Beiträge

Zurück