0

我有 2 个名为 Product, Stock 的表,如下产品表:-

Id     Name     Hand
1      A        50
2      B        5
3      C        10

库存表:-

Id    Pid     Qty
1     1       50

我想要每个产品的总库存,所以手栏显示期初库存。我试过了:

select product.id, name, hand, count(qty) 
from product 
left join stock on pid=product.id

但它只给了我第一个产品细节,即使我正在做左连接

4

1 回答 1

1

您必须按产品分组并使用sum()而不是count()

select p.id, p.name, p.hand, coalesce(sum(qty), 0) totalstock
from product p left join stock s
on s.pid = p.id
group by p.id, p.name, p.hand

请参阅演示
结果:

| id  | name | hand | totalstock |
| --- | ---- | ---- | ---------- |
| 1   | A    | 50   | 50         |
| 2   | B    | 5    | 0          |
| 3   | C    | 10   | 0          |
于 2020-02-16T09:48:36.710 回答