SQL查询的列信息
问题描述:
计数使用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
我希望这是明确的理解。
谢谢。
答
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
这是的Sybase语法,我没有进入MySQL现在来测试它是否在那里工作很好,但它应该 – DVK 2010-04-22 14:03:13
谢谢你,但如果有2周2的连续 – Acron 2010-04-22 14:08:48
我这并不能掩盖认为它确实,因为它正在进行每2分钟的减法...... 它的4-(如果沃尔= 2然后1其他0) - (如果jon = 2然后1其他0)-usw ... – jpabluz 2010-04-22 14:12:22