etops Geschrieben 16. Februar 2006 Geschrieben 16. Februar 2006 Hallo, ich bin gerade dabei, mit MySQL eine Kreuztabelle zu realisieren, was auch so weit funktioniert. Meine Abweichung ist allerdings, daß ich zwei GROUP BY Elemente habe, da ich die Gesamtwerte auch summieren möchte - und genau hier mache ich offensichtlich einen Fehler, denn ich kriege die Summe nicht. Meine Abfrage sieht folgendermaßen aus: SELECT DATE_FORMAT(`DayOfOrigin`, '%m-%Y') AS `mnth`, CONCAT(A_DDD,'-',A_DDA) AS `CPA`, SUM(IF(`DLC1` BETWEEN '40' AND '49', 1, 0)) AS `D1-41`, SUM(IF(`DLC2` BETWEEN '40' AND '49', 1, 0)) AS `D2-41`, SUM(IF(`DLC3` BETWEEN '40' AND '49', 1, 0)) AS `D3-41`, COUNT('D1-41'+'D2-41'+'D3-41') AS `D41-ttl` FROM `tbl_Test` WHERE (`SDD` BETWEEN '2005-01-01' AND '2005-12-31') GROUP BY `mnth`, `CPA` Das gewünschte Ergebnis soll sein: ---------------------------------------------------------------- | mnth | CPA | D1-41 | D2-41 | D3-41 | D41-ttl | ---------------------------------------------------------------- | 01-2005 | ABC-DEF | 7 | 3 | 4 | 14 | ---------------------------------------------------------------- | 01-2005 | GHI-JKL | 5 | 2 | 1 | 8 | ---------------------------------------------------------------- | 02-2005 | ABC-DEF | 3 | 1 | 9 | 13 | ---------------------------------------------------------------- | 02-2005 | GHI-JKL | 4 | 2 | 1 | 7 | ---------------------------------------------------------------- ... usw (Sorry wegen der blöden Formatierung...). Wäre super, wenn mir da jemand mal 'nen Hinweis geben könnte, wo es klemmt. Danke + viele Grüße, -etops-
Joe Kinley Geschrieben 16. Februar 2006 Geschrieben 16. Februar 2006 Das Group By Statement kommt mit dem Alias net klar... also musst du sowas machen': ... GROUP BY `mnth`, CONCAT(A_DDD,'-',A_DDA)
etops Geschrieben 16. Februar 2006 Autor Geschrieben 16. Februar 2006 Sorry, aber ne, das ist es nicht (es sei denn, ich verstehe jetzt noch weniger als vorher ) Ich will eigentlich nur den Gesamtwert (daher auch COUNT(...) ) der drei Einzelwerte zusätzlich haben. EDIT: COUNT(*) funktioniert da z.B. bisher auch nicht...(jedenfalls nicht wie gedacht)
Joe Kinley Geschrieben 17. Februar 2006 Geschrieben 17. Februar 2006 SELECT DATE_FORMAT(`DayOfOrigin`, '%m-%Y') AS `mnth`, CONCAT(A_DDD,'-',A_DDA) AS `CPA`, SUM(IF(`DLC1` BETWEEN '40' AND '49', 1, 0)) AS `D1-41`, SUM(IF(`DLC2` BETWEEN '40' AND '49', 1, 0)) AS `D2-41`, SUM(IF(`DLC3` BETWEEN '40' AND '49', 1, 0)) AS `D3-41`, COUNT('D1-41'+'D2-41'+'D3-41') AS `D41-ttl` FROM `tbl_Test` WHERE (`SDD` BETWEEN '2005-01-01' AND '2005-12-31') GROUP BY DATE_FORMAT(`DayOfOrigin`, '%m-%Y'), CONCAT(A_DDD,'-',A_DDA) Ich meinte... probier es mal hiermit
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden