Mysql查询与Case一起使用

时间:2012-12-11 08:52:31

标签: php mysql

我有两张桌子。

一个包含3列的默认数据,(值为1或0)在同一个表中是ClientID

另一个表包含带有日期,ClientID和名为“已更改”

的额外列的已编辑数据

如果Changed = 1则更改3列中的值,因此需要从第二个表中读取。

这个工作正常,但我想在php中生成一个报告,其中可以选择日期范围,查询应按ClientID分组,并计算3列所选日期范围内的所有1。 (每列分开)

这是诀窍:当特定行中的Changed = 0时,它应检查默认值,如果Changed = 1,则应检查第二个表。然后用前面的行计算它。

我希望你明白我想要创造的东西

1 个答案:

答案 0 :(得分:2)

您可以使用SQL中的IF函数

例如

SELECT SUM(IF(Changed=1, t1.col1, t2.col2)) FROM t1, t2 WHERE t1.id=t2.id

这是如何在SUM

中使用列的示例