我正在处理两个桌子
产品表 与 PRODUCTID,价格
我正在与
一起工作ORDERLINE 表 其中有 PRODUCTID,QUANTITY,ORDERID
我想同时加入两个表,以便拥有
ORDERQUANTITY 其中有 PRODUCT.PRODUCTID,ORDERLINE.QUANTITY 分组依据 PRODUCTID
换句话说,我希望两个表不像这样:
PRODUCTID QUANTITY
- 10 4
- 10 2
- 20 1
- 20 6
- 30 4
- 30 6
- 30 2
- 30 2
- 40 2
- 40 2
- 40 5
但是像 this
PRODUCTID QUANTITY
- 10 6
- 20 7
- 30 14
- 40 9
当我尝试按productid分组时,下面显示的当前代码仅在第一个表中起作用。
SELECT PRODUCT.PRODUCTID, ORDERLINE.QUANTITY
FROM ORDERLINE
FULL OUTER JOIN PRODUCT ON PRODUCT.PRODUCTID = ORDERLINE.PRODUCTID
ORDER BY PRODUCT.PRODUCTID;
答案 0 :(得分:2)
如果只需要ID和订购数量的总和,则不需要加入:
select PRODUCTID, sum(QUANTITY)
from ORDERLINE
group by PRODUCTID
order by PRODUCTID;
答案 1 :(得分:1)
我认为简单的SUM聚合函数和GROUP BY查询就足够了:
SELECT PRODUCT.PRODUCTID, coalesce( SUM( ORDERLINE.QUANTITY), 0 )
FROM ORDERLINE
FULL OUTER JOIN PRODUCT ON PRODUCT.PRODUCTID = ORDERLINE.PRODUCTID
GROUP BY PRODUCT.PRODUCTID
ORDER BY PRODUCT.PRODUCTID;
答案 2 :(得分:0)
我不确定是否能理解您的问题,但我认为这种观点应能为您提供所要的结果:
SELECT PRODUCT.PRODUCTID, SUM(ORDERLINE.QUANTITY) AS QUANTITY
FROM ORDERLINE
FULL OUTER JOIN PRODUCT ON PRODUCT.PRODUCTID = ORDERLINE.PRODUCTID
GROUP BY PRODUCT.PRODUCTID
ORDER BY PRODUCT.PRODUCTID;
答案 3 :(得分:0)
SELECT PRODUCT.PRODUCTID, SUM(ORDERLINE.QUANTITY)
FROM ORDERLINE
FULL JOIN PRODUCT ON PRODUCT.PRODUCTID = ORDERLINE.PRODUCTID
GROUP BY PRODUCT.PRODUCTID
这里正在起作用:SQL Fiddle