Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#4

AW: Select mit widersprüchlichen where-Anweisungen

  Alt 11. Jul 2013, 17:07
vermutlich meinst Du sowas in dieser Art:
Code:
select Branche, Sum(Feedback_10) as Feedback_10, Sum(Feedback_9) as Feedback_10 from (
  select hlp_branchen.branche_text as Branchen, Count(anfrage_id) as Feedback_10, 0 as Feedback_9
  from anfragen
  left join hlp_branchen on hlp_branchen.branchen_id=anfragen.branche
  where feedback=10 and branche in (1,2,3)
  union
  select hlp_branchen.branche_text as Branchen, 0 as Feedback_10, Count(anfrage_id) as Feedback_9
  from anfragen
  left join hlp_branchen on hlp_branchen.branchen_id=anfragen.branche
  where feedback=9 and branche in (1,2,3)
)
group by Branche
Du benötigst hierfür also im Ergebnis zuerst mehr Spalten, als Du im Ergebnis eigentlich ermitteln kannst. Zuerst holst Du daher die Daten für die erste Spalte und füllst die übrigen Spalten mit 0.
Dann holst Du das Ergebnis für die zweite Spalte und füllst die übrigen Spalten mit 0.
Dies kannst Du für beliebig viele Spalten machen. Die einzelnen Ergebnisse werden mit Union zusammengefügt.

Über diese mit Union zusammengefügten Ergebnismengen legst Du nun ein weiteres Select-Statement, das Dir die Spalten der Einzelergebnisse zusammenfasst. Dies kannst Du wahlweise mit Max oder Sum erledigen, da Du bei den Einzelergebnissen für jede Kombination aus Branche und Feedback ja nur einen Wert hast und der Rest mit 0 gefüllt wurde.
Das Ergebnis musst Du dann bein Summieren nur (per Group by) auf Branche gruppieren.

Danach solltest Du für jede Branche die gewünschten Werte nebeneinander in der Tabelle vorfinden.

Wenn ich das richtig sehe, dürfte Deine Lösung auch zum gewünschten Ergebnis führen.
  Mit Zitat antworten Zitat