nerd


: 15.02.2005 : 1733 : AKL
|
| : 23.06.2009, 03:56 : MySql: group by with rollup problem |
|
|
Hallo,
wie kann ich bei einem 'GROUP BY ... WITH ROLLUP' den wert in der 'group by' spalte aendern? hier meine abfrage:
| Code: |
SELECT
DATE_FORMAT(auftrag.auftragseingang,'%b %y') AS Monat,
Count(auftrag.auftrag_id) as Bestellungen,
Sum(warenkorb.anzahl*warenkorb.einzelpreis) AS Storno_Total
FROM
auftrag
Inner Join warenkorb ON warenkorb.auftrag_id = auftrag.auftrag_id
WHERE
auftrag.auftrag_status = '-1'
GROUP BY
DATE_FORMAT(auftrag.auftragseingang,'%y%m')
WITH ROLLUP |
eigentlich recht simpel, zeige wert und anzahl aller stornierten auftraege (status = -1) an, fasse nach monat zusammen (DATE_FORMAT(auftrag.auftragseingang,'%y%m') = '0901' = januar 2009) .
allerdings zeigt meine letzte 'ROLLUP' zeile jetzt den letzten monat an - wie kann ich es so aendern das dort 'Total' steht? auf http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html benutzen die ifnull, allerdings geht das bei mir nicht da der wert nicht null ist...?
marketing through social media is just like herding cats. and just to make it interesting, many of the cats are drunk and stupid...
blackhat linkkauf und so...  |
|
bloddy newbie


: 18.05.2006 : 170
|
| : 23.06.2009, 12:28 : MySql: group by with rollup problem |
|
|
Der Wert ist nicht NULL, da du es ja formatierst . Also wird hier der aktuelle Zeitstempel genommen... denn NULL is nun mal nix, was einen Timestamp enthält und dann wird NOW() genommen.
| Code: |
SELECT
CASE
WHEN auftrag.auftragseingang IS NULL THEN 'Total'
ELSE DATE_FORMAT(auftrag.auftragseingang, '%b %y')
END AS Monat,
COUNT(DISTINCT auftrag.auftrag_id) as Bestellungen,
SUM(warenkorb.anzahl*warenkorb.einzelpreis) AS Storno_Total
FROM
auftrag
JOIN warenkorb
ON warenkorb.auftrag_id = auftrag.auftrag_id
WHERE
auftrag.auftrag_status = '-1'
GROUP BY
LEFT(auftrag.auftragseingang, 7)
WITH ROLLUP |
So sollte es klappen
Grüße BN
puh? |
|