yo,
mein vorschlag wäre nicht schneller, aber ein wenig eleganter.
SELECT sum( tab1.wert ) total, date_format(datum,'%m.%Y') date
FROM (SELECT DISTINCT sid, wert, datum
FROM tabelle
WHERE x = 'y'
) AS tab1
GROUP BY date
ORDER BY YEAR( datum ) , MONTH( datum )
;
des weiteren könnte es sein, dass deine ORDER BY klausel nicht bei jedem dbms so laufen würde, ich vermute mysql ist im einsatz ?
Ilja