group by 使用


商品库存表: 仓库编号   商品编号   数量
            CangKuID  ProductID   Quantity
             1          3          50
             1          3          100
             2          4          60
             2          4          150

商品表:     商品编号    商品名称   单位
              3           电脑      台
              4           电视      台

现在想实现显示成:

     商品名称   单位  数量
       电脑      台    150
       电视      台    210







create table 商品库存表(CangKuID int,ProductID int,Quantity int)
insert into 商品库存表
select 1,3,50
union all select 1,3,100
union all select 2,4,60
union all select 2,4,150

create table 商品表(商品编号 int,商品名称 varchar(20),单位 varchar(6))
insert into 商品表
select 3,'电脑','台'
union all select 4,'电视','台'

select 商品名称,
单位,
商品库存表.Quantity as '数量'
from 商品表
left join (select ProductID,sum(isnull(Quantity,0)) as Quantity from 商品库存表 group by ProductID) 商品库存表 on 商品库存表.ProductID=商品表.商品编号
/*
商品名称                 单位     数量         
-------------------- ------ -----------
电脑                   台      150
电视                   台      210

(所影响的行数为 2 行)
*/





select a.productname,a.unit,b.Quantity
from Product a  -- NO1
right join
(select ProductID,sum(isnull(Quantity,0)) as Quantity from CangKuStock group by ProductID) b  -- NO3
on b.ProductID=a.Productid

原文地址:https://www.cnblogs.com/chengulv/p/796611.html