我想为这个SUM提出建议,但该建议无法正常工作。 我必须汇总当天的数据并将其显示在表格中。 我做了这样的查询:
SELECT * FROM giorni WHERE punto = '$punto' && STR_TO_DATE(giorno, '%d/%m/%Y') BETWEEN STR_TO_DATE('" . $d1 . "', '%d/%m/%Y') AND STR_TO_DATE('" . $d2 . "', '%d/%m/%Y') ORDER BY data";
这是“简单”的一行,它显示每一行,我必须在其中放一个SUM以使其每天显示,但要对同一天的数据求和。
有人可以帮我创建此查询吗?
答案 0 :(得分:2)
SUM
是一个聚合函数。它将计算每个组的总数。 +
用于计算一行中的两列或更多列。
示例:
ID VALUE1 VALUE2
===================
1 1 2
1 2 2
2 3 4
2 4 5
所以下面的查询:
SELECT ID, VALUE1 + VALUE2
FROM TableName
将导致:
ID, VALUE1 + VALUE2
1 3
1 4
2 7
2 9
但是此查询:
SELECT ID, SUM(VALUE1 + VALUE2)
FROM tableName
GROUP BY ID
将导致:
ID, SUM(VALUE1 + VALUE2)
1 7
2 16
答案 1 :(得分:1)
如果我理解正确,可以尝试一下。
您不能在SUM
函数中添加多参数。
使用聚合函数时,您需要在GROUP BY
游标中添加非聚合列。
SELECT data,giorno,SUM(a1) as a1, SUM(a2) as a2, SUM(a3) as a3 , SUM(a4) as a4
FROM giorni
WHERE punto = '$punto' && STR_TO_DATE(giorno, '%d/%m/%Y')
BETWEEN STR_TO_DATE('" . $d1 . "', '%d/%m/%Y') AND STR_TO_DATE('" . $d2 . "', '%d/%m/%Y')
GROUP BY data,giorno
ORDER BY data";
答案 2 :(得分:0)
尝试一下
SELECT data,giorno,SUM(a1),SUM(a2),SUM(a3),SUM(a4)
FROM giorni
WHERE punto = '$punto' && STR_TO_DATE(giorno, '%d/%m/%Y') BETWEEN STR_TO_DATE('" . $d1 . "', '%d/%m/%Y') AND STR_TO_DATE('" . $d2 . "', '%d/%m/%Y')
GROUP BY data
ORDER BY data
此代码假设您没有组合这四个字段。将SUM
放入您要求和的字段中。