Klaus: Problem bei MySQL-Abfrage

Beitrag lesen

Hallo,

ich möchte eine etwas kompliziertere Abfrage erstellen:

In einer Tabelle gibt es die beiden Felder 'empfohlen' und 'beauftragt', die beide eine Kundennummer enthalten können. Ein weiteres Feld 'fertig' gibt an, ob der Auftrag noch offen ist oder nicht. Dabei kann das Feld 'beauftragt' noch leer sein und es kann sein, dass die Kundennummer in 'empfohlen' eine andere ist als im 'beauftragt'. In einer 2. Tabelle stehen die der Kundennummer zugehörigen Kontaktdaten wie z.B. Name etc.

Wie kann ich die Anzahl Einträge pro Kundennummer zählen, bei dem er entweder in 'beauftragt' steht oder in 'empfohlen' wenn 'beauftragt' noch leer ist? Dabei soll über die 2. Tabelle auch der Name angezeigt werden.

Bisher zähle ich leider nur die Kundennummer, die in 'empfohlen' stehen.

SELECT count(*) as anz,a.empfohlen,b.kdnr,b.name FROM auftraege as a left join stamm as b on a.empfohlen = b.kdnr WHERE fertig = '' GROUP BY empfohlen order by anz DESC

Wenn bspw. Kunde 1 empfohlen ist, aber Kunde 2 den Auftrag übernimmt, dann zähle ich bei Kunde 1 einen zuviel und bei Kunde 2 einen zuwenig.

Hat jemand eine Idee, wie ich das korrekt lösen könnte?

Klaus

akzeptierte Antworten