我希望得到您對我無法在單個查詢中獲得的查詢的幫助。從同一表中抽取兩個SUM
Table timeaccount Field Type id mediumint(8) --> Primary key autoincrement user varchar(40) --> user, e.g. 'john.fisher' type varchar(15) --> can only be 'SUM' or 'SUBSTRACT' minutes smallint(5) --> an amount of minutes
這代表時間佔職工其中每個記錄說,一名工人(場「用戶」)多少分鐘已經添加或者(根據現場「類型」)從他的餘額中減去。
我只是想獲得一個單一的查詢從特定工人的平衡,在僞SQL將是:
select sum(minutes) from timeaccount where worker = 'john.fisher' and type = 'SUM' - select sum(minutes) from timeaccount where worker = 'john.fisher' and type = 'SUBSTRACT' as balance
感謝您的幫助,
我非常喜歡使用乘法逆轉技巧的優雅使用只有一個SUM,我期望有比使用兩個SUM更好的性能,這就是爲什麼我把你的答案標記爲Accepted,儘管我非常感謝MichaelRushton和我也從其他人那裏學到了答案。謝謝! – Nelson 2012-04-03 10:50:33
此外,您正在使用的情況下,IF將足夠,但我很欣賞它作爲'類型'可能有不止兩個可能值的情況的有用示例。 – Nelson 2012-04-03 11:02:05