2010-04-22 115 views
3

計數使用MySQL 5表「abrechnung」SQL查詢的列信息

id datum  title betrag wal jon al ben 
7 2010-02-08 Essen 1362  0 0 1 0 
8 2010-02-15 Essen 324  0 0 1 2 
9 2010-02-15 Essen 5732  0 0 1 2 
10 2010-02-15 Essen 3245  0 2 1 2 

我想要的到底是什麼:每個行「betrag」是通過一些分頻,然後加入到最終的結果。被分割的數字是4 - 當前行中的數量2。

我目前的做法如下:

SELECT SUM(betrag) AS "W->A" FROM abrechnung WHERE (wal = "0" and al = "1"); 

這基本上選擇,我想已經添加到最終結果的entrys。結果在這種情況下:10663.

其實最終的結果應該是:

1362/4 (no number 2 in that row for wal, jon, al or ben) 
+ 324/3 (there is one 2 in that row for ben) 
+ 5732/3 (same) 
+ 3245/2 (there are 2 2's in that row) 
----------- 
    3 981.66 

我希望這是明確的理解。

謝謝。

回答

1
SELECT SUM(betrag/(
4-CASE WHEN wal = 2 THEN 1 ELSE 0 END 
    -CASE WHEN jon = 2 THEN 1 ELSE 0 END 
    -CASE WHEN al = 2 THEN 1 ELSE 0 END 
    -CASE WHEN ben = 2 THEN 1 ELSE 0 END 
)) 
AS "W->A" FROM abrechnung 
+0

這是的Sybase語法,我沒有進入MySQL現在來測試它是否在那裏工作很好,但它應該 – DVK 2010-04-22 14:03:13

+0

謝謝你,但如果有2周2的連續 – Acron 2010-04-22 14:08:48

+0

我這並不能掩蓋認爲它確實,因爲它正在進行每2分鐘的減法...... 它的4-(如果沃爾= 2然後1其他0) - (如果jon = 2然後1其他0)-usw ... – jpabluz 2010-04-22 14:12:22