Om jag gör en
SELECT usertable.username as userName, SUM(gemstable.won) AS wonSum, SUM(gemstable.lost) AS lostSum FROM usertable LEFT JOIN gemstable ON usertable.ID=gemstable.userID GROUP BY usertable.ID
Ger mig svaret:
Om jag gör en:
SELECT usertable.username as userName, SUM(gemstable.won) AS wonSum, SUM(gemstable.lost) AS lostSum FROM usertable LEFT JOIN gemstable ON usertable.ID=gemstable.userID WHERE gemstable.onDate<='2002-01-31' AND gemstable.onDate>='2002-01-01' GROUP BY usertable.ID
dvs lägger till WHERE biten får jag svaret:
dvs att jag får ALLTID får allt från 'usertable' men summeringen av 'lost' och 'won' sker bara över det givna tids-spannet...
Någon som kan denna sql fråga?
Flytta villkoren från WHERE till join-instruktionen. Dvs:
SELECT usertable.username as userName, SUM(gemstable.won) AS wonSum, SUM(gemstable.lost) AS lostSum
FROM usertable
LEFT JOIN gemstable ON usertable.ID=gemstable.userID [b]AND[/b]
gemstable.onDate<='2002-01-31' AND gemstable.onDate>='2002-01-01'
GROUP BY usertable.ID