繁体   English   中英

SQL查询总和不起作用

[英]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以使其每天显示,但对同一天的数据求和。

这2行必须显示为1: 在此处输入图片说明

谁能帮我创建此查询?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM