0
我有3个SQL表,每个供应商一个。所有表格都有3个相同的列:(id),(花费)和(日期)。 (id)代表产品ID。 (花费)是他们花在产品上的多少。和(交易日期)。SQL - 使用Union All和Join进行计算
感谢stackoverflow,我能够根据每个产品(id)包括所有表花费的总和进行排序。这里是工会的作品ALL声明:
SELECT id, SUM(spend) as total
FROM (
SELECT id, spend, date
FROM vendor1
WHERE date BETWEEN '$dateStart' AND '$dateEnd'
UNION ALL
SELECT id, spend, date
FROM vendor2
WHERE date BETWEEN '$dateStart' AND '$dateEnd'
UNION ALL
SELECT id, spend, date
FROM vendor3
WHERE date BETWEEN '$dateStart' AND '$dateEnd'
) as SpendTotal
GROUP BY id
ORDER BY total DESC
现在我想的SQL公式,列出从各产品(ID)获得收入纳入新表(revTbl)。这第四张表与上面提到的3有相同的列(id)。它也有相同的(日期)列。但是,该表有一个名为(rev)的不同列。
我想编写一个按SUM(rev)-SUM(花费)排序的SQL语句。我试图将它作为UNION ALL包括在内,但没有运气,并且在阅读了UNION之后,我明白了为什么。我猜我需要加入一个JOIN语句,但不知道从哪里开始。请帮我写出正确的SQL语句。
这没有奏效。 –
你有错误吗?或者它返回了意外的结果? – Mustafa