SQL查询计数列信息

时间:2010-04-22 13:56:31

标签: sql count

将MySQL 5与表“abrechnung”一起使用

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");

这基本上选择了我想要添加到最终结果的部分。在这种情况下的结果: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 个答案:

答案 0 :(得分: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