我有以下示例数据库架构
http://i.stack.imgur.com/EKNxY.jpg
我想要:
A)所有销售,按用户分组。
B) 折扣,按用户分组。
我正在使用以下查询:
FOR A:
SELECT u.UserID, u.UserName, Sum(d.Quantity * i.Price) AS 'Sales'
FROM OrderDetails d
INNER JOIN Orders o ON o.OrderID = d.OrderID
INNER JOIN Item i ON i.ItemID = d.ItemID
INNER JOIN [User] u ON u.UserID = o.UserID
GROUP BY u.UserID, u.UserName
结果:
用户 ID 用户名 销售
1 Mobeen 11060
2 收银员 25960
对于 B:
SELECT u.UserID, u.UserName, Sum(r.DiscountAmount) AS Discounts
FROM Receipt r
INNER JOIN Orders o ON o.OrderID = r.OrderID
INNER JOIN [User] u ON u.UserID = o.UserID
GROUP BY u.UserID, u.UserName
结果:
用户 ID 用户名折扣
1 Mobeen 50
2 Cashier 310
但是然后我决定将这两个查询结合起来,但现在的问题是我得到了不同的结果。 查询如下:
SELECT u.UserID,
u.UserName,
Sum(d.Quantity * i.Price) AS 'Sales',
Sum(r.DiscountAmount) AS 'Discounts'
FROM OrderDetails d
INNER JOIN Orders o ON o.OrderID = d.OrderID
INNER JOIN Item i ON i.ItemID = d.ItemID
INNER JOIN [User] u ON u.UserID = o.UserID
INNER JOIN Receipt r ON r.OrderID = o.OrderID
GROUP BY u.UserID, u.UserName
结果:
UserID UserName Sales Discounts
1 Mobeen 2270 50
2 Cashier 25760 430