Mailinglisten-Archive |
Norbert Pfeiffer schrieb:
> Hi,
>
> so ganz richtig bringt es WITH ROLLUP leider nicht
> +-----+-----+--------+-------+
> | Id | Anz | Cash | Saldo |
> +-----+-----+--------+-------+
> | 17 | 3 | 18.97 | 0 |
> | 27 | 2 | 51.98 | 0 |
> | 33 | 3 | 41.09 | 0 |
> |NULL | 8 | 112.04 | 0 |
> +-----+-----+--------+-------+
> 4 rows in set (0.01 sec)
>
> Die gewuenschte Anzeige waere eigentlich:
> +-----+-----+--------+--------+
> | Id | Anz | Cash | Saldo |
> +-----+-----+--------+--------+
> | 17 | 3 | 18.97 | 18.97 |
> | 27 | 2 | 51.98 | 70.95 |
> | 33 | 3 | 41.09 | 112.04 |
> +-----+-----+--------+--------+
ja, das hatte ich ja dann auch schon bemerkt, in der gefolgten Email.
> Ausserdem kommt hinzu, dass auf der Entwicklungsmaschine
> MySQL 4.1.7 laeuft, aber der Produktivserver noch mit
> MySQL 4.0.irgendwas rummacht ...
> Man ist ja schon froh, dass es nicht 3.*.* ist ... ;-)
das heißt die Sache mit dem Subquery hilft dir also auch nicht wirklich
weiter ...
das wird dir dann wahrscheinlich auch nicht wirklich weiterhelfen:
SELECT gekauft.usr_id AS Id,
gekauft.gekauft AS Cash,
SUM(t2.gekauft) AS Saldo
FROM gekauft
LEFT JOIN gekauft AS t2
ON t2.ver_id <= gekauft.ver_id
AND t2.usr_id <= gekauft.usr_id
GROUP BY gekauft.ver_id
ORDER BY gekauft.usr_id,
gekauft.ver_id;
mhm, naja mit 4.1 und 5.0 wäre alles so viel einfacher ... ;-)
oder du verwendest eine temporäre Tabelle, dann hättest du dein Ergebnis
so wie du willst auch mit 4.0 - einfach obige Abfrage in die tmep.
Tabelle schieben und daraus dann
SELECT id, COUNT(*), SUM(cash), MAX(saldo)
FROM table
GROUP BY id
--
Sebastian Mendel
www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive