Ich habe folgende MySQL-Abfrage:MySQL Rollup Puzzle
select
members_categories.category_desc as 'membership_type',
SUM(CASE payment_method WHEN 'Bank Transfer' THEN amount_paid ELSE 0 END) AS 'Bank Transfer',
SUM(CASE payment_method WHEN 'Cash' THEN amount_paid ELSE 0 END) AS 'Cash',
SUM(CASE payment_method WHEN 'Cheque' THEN amount_paid ELSE 0 END) AS 'Cheque',
SUM(CASE payment_method WHEN 'Credit Card' THEN amount_paid ELSE 0 END) AS 'Credit Card',
SUM(CASE payment_method WHEN 'Direct Debit' THEN amount_paid ELSE 0 END) AS 'Direct Debit',
SUM(CASE payment_method WHEN 'PayPal' THEN amount_paid ELSE 0 END) AS 'PayPal',
SUM(CASE payment_method WHEN 'Salary Deduction' THEN amount_paid ELSE 0 END) AS 'Salary Deduction',
SUM(CASE payment_method WHEN 'Standing Order' THEN amount_paid ELSE 0 END) AS 'Standing Order',
SUM(amount_paid) AS 'Total'
FROM members_main, members_categories, members_payments
WHERE members_categories.category_code=members_main.membership_type and members_main.contact_id=members_payments.contact_id and members_payments.payment_date between '2012-01-01' and '2013-12-31'
GROUP BY membership_type With ROLLUP
Welche zurück:
Wie Sie aus über dem ROLLUP insgesamt am unteren Rand zeigt eine descrption des membership_type sehen Feld der letzten Zeile zurückgegeben. Gibt es eine Möglichkeit, dies durch das Wort Total zu ersetzen?
Kühle nicht über 'ROLLUP' – Neal
Nope wusste. Es gibt keine solche Option in der MySQL-Syntax. Sie müssen erkennen, dass der Name doppelt vorhanden ist, vorausgesetzt, dass die erste Instanz des zusammengerollten Felds der ursprüngliche Wert ist und der nachfolgende Wert das Rollup ist. –
durch Dokumentation, sollte dieser Zellwert "NULL" sein. Etwas ist hier fischig. http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html –