【发布时间】:2015-12-08 11:45:22
【问题描述】:
这是两张表的结构
表 A
+----+-----+----+----------------------+--------------------+----------+
| id | ... |....| time_start | time_end | total |
+----+-----+----+----------------------+--------------------+----------+
1 2015-12-06 10:00:00 2015-12-06 12:00:00 200
2 2015-12-07 10:00:00 2015-12-07 12:00:00 300
表 B
+----+----------+------+------+------+------+
| id | idTableA | val1 | val2 | val3 | val4 |
+----+----------+------+------+------+------+
1 1 10 10 10 10
2 1 10 10 10 10
3 2 10 10 10 10
目标如下:给定一个 time_start 和一个 time_end 日期,显示总和(表 A)和 val1、val2 的总和, val3,val4
示例:
time_start = 2015-12-01 00:00:00
time_end = 2015-12-30 23:59:59
预期结果:总和 = 500,val(1-4) 总和 = 120
我试过了:
$myquery = "";
$myquery .= "SELECT SUM(tableA.total) AS myTotal,";
$myquery .= "SUM(tableB.val1) + SUM(tableB.val2) + SUM(tableB.val3) + SUM(tableB.val4) AS myValTotal ";
$myquery .= "FROM tableA INNER JOIN tableB ON tableA.id = tableB.idTableA ";
$myquery .= "WHERE tableA.time_start >='".$dateStart."' AND tableA.time_end <='".$dateEnd."'";
val(1-4) 的 SUM 是正确的,但 total 的 SUM 不是。
【问题讨论】:
-
只加括号: $myquery .= "SUM(SUM(tableB.val1) + SUM(tableB.val2) + SUM(tableB.val3) + SUM(tableB.val4)) AS myValTotal " ;
-
请说明总和是怎么来的,只有这样才能做到,值的总和也是如此
-
@KrishnaGupta 我试过了,但没有任何改变
-
@mugdha tableA.total 和 tableB.val1,tableB.val2,tableB.val3,tableB.val4 是不同类型的值。 tableA.total 不是 va1,val2,val3,val4 的总和
-
你使用了我更新的评论??