【发布时间】:2014-01-08 10:19:57
【问题描述】:
我试过这个:
SELECT ProductId AS GmId, (
SELECT SUM(Amount) FROM tmp WHERE ProductId=GmId AND (AssignDate BETWEEN '$Date1' AND '$Date2')
) AS sum0, (
SELECT SUM(Amount) FROM tmp WHERE ProductId=GmId AND (AssignDate BETWEEN '$Date2' AND '$Date3')
) AS sum1 FROM (
SELECT * FROM somerealtable
) tmp GROUP BY ProductId
但是mysql显示错误信息table <database name>.tmp doesn't exist!
如何做到这一点?
编辑:sqlfiddle 示例here
EDIT2:更复杂的 sqlfiddle sample。
【问题讨论】:
-
考虑提供适当的 DDL(和/或 sqlfiddle)以及所需的结果集
-
临时表虽然没有在您的问题中显示(它们在哪里?),但它们是每个会话的,并且不能跨会话访问,换句话说
A TEMPORARY table is visible only to the current connection
标签: mysql sql select group-by subquery