所以我有下表
bills
billId | bar | drinker | date | time
001 | B1 | P1 | 11/10/18| 21:58
002 | B1 | P1 | 11/11/18| 20:58
003 | B2 | P2 | 11/12/18| 21:57
004 | B1 | P1 | 11/12/18| 21:56
transactions Sells
billID| item | quantity bar | item | price
001 | bud | 3 b1 | bud | 2.00
002 | bud | 3 b1 | hite | 5.00
003 | coors| 1 b2 | coors | 5.50
004 | hite | 3
成功地连接了这两个表,因为它们都使用此查询共享一个billId并获得以下结果:
SELECT b.billId, b.bar, b.drinker, t.item, t.quantity
from bills b, transactions t
WHERE b.billId = t.billID
ORDER BY b.drinker;
billId | bar | drinker | item | quantity
001 | B1 | P1 | bud | 3
002 | B1 | P1 | bud | 3
003 | B2 | P2 | bud | 1
004 | B1 | P1 | hite | 3
因此,现在我想查询一下,并使用相应的价格和数量计算人P1的总价格。我只是对如何获得P1的总销售额感到困惑。我让我失望的一件事是将特定酒吧的总人数包括在内。
最佳答案
您可以JOIN
三个表来获得结果:
SELECT b.drinker, b.bar, sum(t.quantity) as quantity,
sum(t.quantity * s.price) as price
FROM bills b
LEFT JOIN transactions t on ( b.billId = t.billID )
LEFT JOIN sells s on ( t.item = s.item )
GROUP BY b.drinker, b.bar
ORDER BY b.drinker;