[英]Sql Query Sum doesn't work
我想就此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以使其每天显示,但对同一天的数据求和。
谁能帮我创建此查询?
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
如果我理解正确,可以尝试一下。
您不能在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";
尝试这个
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
放入要求和的字段中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.