我有两个表:orders(id, date, qty) A
和sales(id, date, qty) B
。
我想知道每天的总订单和销售数量(我可能在同一天没有订单和销售数量。)
结果应如下所示:A.day1 A.qty B.day1 B.qty
。
我尝试了一个完整的外连接,但每天总计加倍。
答案 0 :(得分:0)
假设我理解了你想要的东西,那么你就是使用Full join:
SELECT ISNULL(o.OrderDate,s.SaleDate),
o.Total AS TotalOrders,
s.Total AS TotalSales
FROM (
SELECT OrderDate,
SUM(Qty) AS Total
FROM Orders
GROUP BY OrderDate
) o
FULL JOIN (
SELECT SaleDate,
SUM(Qty) AS Total
FROM Sales
GROUP BY SaleDate
) s
ON o.OrderDate = s.SaleDate
我已经重命名了一些列名(日期不是一个好名字,因为它是保留的)
此外,您的DBMS未指定。以上是SQL Server。如果您使用的是MySQL,则需要将ISNULL
替换为IFNULL