嗨,我需要一个关于这个问题的帮助。我想创建一个视图,在其中显示已购买和已出售项目的摘要。
这些是我的table:
**tblfruit**
ID Name
1 Apple
2 Orange
3 mango
**tblpurchaseditems**
ID fruit_id qty amount
1 1 3 75
2 1 2 50
3 2 1 10
4 3 3 30
**tblsolditems**
ID fruit_id qty amount
1 1 2 150
2 1 2 350
3 2 1 50
4 3 2 230
5 3 1 120
我想要输出:
**tblsummary**
ID fruit_id totalqtypurchased totalamountpurchased totalqtysold totalamountsold
1 1 5 125 4 500
2 2 1 10 1 50
3 3 3 30 3 350
3条答案
按热度按时间tv6aics11#
从你的样本数据和预期结果
你可以试着
UNION ALL
合并tblpurchaseditems
以及tblpurchaseditems
table和牌子grp
两个结果集。然后使用条件聚合函数来获得期望的结果。查询1:
结果:
笔记
我会用一根柱子
itemGroup
在表中,可以表示哪种类型。1
中庸purchaseditems
2
中庸solditems
不需要使用UNION ALL
把两张table合起来,更有意义。所以在表中,模式看起来像。
查询1:
结果:
vqlkdk9b2#
0s7z1bwu3#
所以有两种方法可以做到这一点,在线或使用连接。
inline:选择name,(从tableb中选择sum(qty)作为tablea中的totalqty
join:选择a.name,sum(b.qty)作为totalqty from tablea join tableb on b.itemid=a.itemid按a.name分组
对于多个表,由于重复,使用连接会变得更加困难,因此对于较小的查询,内联查询在这里可以更好地工作。