Hi, ich habe eine Datenbank Windräder und darin eine Tabelle (Seriennummer, Typ ,Windpark, Status). Dort sind alle Windräder aufgelistet und DFÜ (Fernüberwachung 1x für den gesamten Windpark dabei ist der Typ DFÜ und die Seiriennummer auch der Name des Windparks).
Es MUSS aber keine DFÜ geben.
nun möchte ich mir ALLE Windparks ausgeben lassen (SELECT DISTINCT "Windpark" FROM "Windräder") und jeweils deren letzten Status (SELECT DISTICT "Windpark, LetzterStatus" FROM "Windräder" WHERE Typ LIKE "DFÜ").
aber da ist ja das Problem, dass ich dann nur die Windparks mit DFÜ bekomme, ich will aber alle Windparks haben, und WENN diese eine DFÜ haben, dann auch noch ihren letzten Status... wie mache ich das? Ich kann natürlich jeden Windpark suchen und dann, ob sie eine DFÜ haben, aber das erscheint mir nicht elegant gelöst, gibt es da nicht was mit LEFT JOIN?
Es MUSS aber keine DFÜ geben.
nun möchte ich mir ALLE Windparks ausgeben lassen (SELECT DISTINCT "Windpark" FROM "Windräder") und jeweils deren letzten Status (SELECT DISTICT "Windpark, LetzterStatus" FROM "Windräder" WHERE Typ LIKE "DFÜ").
aber da ist ja das Problem, dass ich dann nur die Windparks mit DFÜ bekomme, ich will aber alle Windparks haben, und WENN diese eine DFÜ haben, dann auch noch ihren letzten Status... wie mache ich das? Ich kann natürlich jeden Windpark suchen und dann, ob sie eine DFÜ haben, aber das erscheint mir nicht elegant gelöst, gibt es da nicht was mit LEFT JOIN?

Eine Lösung hab ich oben schon gepostet. Wenn das mit nichtda wirklich der Fall ist müsstest du das vorm gruppieren noch korrigieren. Z.B.: so MAX(IF(Typ='DFÜ',LetzterStatus ,NULL)),

Kommentar