,嵌套汇总查询方法
求助,嵌套汇总查询方法
表1:d_stock
d_prd_no Ι d_product Ι d_pur_qty
表2:d_sale
d_prd_no Ι d_qty
表3:d_produce
d_prd_no Ι d_prd_qty
三个表,全部用d_prd_no关联,想要的结果如下:
1、首先把表1,d_stock的值全部列出
2、表2,d_sale中按d_prd_no分类汇总d_qty,跟表1中d_prd_no相同的,在后面列出汇总值,没有就标一个‘0’
3、表3,d_produce中按d_prd_no分类汇总d_prd_qty,跟表1中d_prd_no相同的,在后面列出汇总值,没有就标一个‘0 ’
[ 表1 ][ 表2 ][ 表3 ]
d_prd_no Ι d_product Ι d_pur_qty Ι d_qty Ι d_prd_qty
001 A 100 50 50
002 B 200 0 200
003 C 300 100 0
------解决思路----------------------
--差不多像这样
select a.*,b.d_qty,c.d_prd_qty from d_stock a left join
(select d_prd_no,SUM(d_qty) d_qty from d_sale group by d_prd_no) b
on a.d_prd_no=b.d_prd_no left join
(select d_prd_no,SUM(d_prd_qty) d_prd_qty from d_produce group by d_prd_no) c
on c.d_prd_no=a.d_prd_no
------解决思路----------------------
select a.*, isnull(b.d_qty, 0) d_qty, isnull(c.d_prd_qty, 0) d_prd_qty
from d_stock a
left join (select d_prd_no, SUM(d_qty) d_qty from d_sale group by d_prd_no) b
on a.d_prd_no = b.d_prd_no
left join (select d_prd_no, SUM(d_prd_qty) d_prd_qty
from d_produce
group by d_prd_no) c
on c.d_prd_no = a.d_prd_no
表1:d_stock
d_prd_no Ι d_product Ι d_pur_qty
表2:d_sale
d_prd_no Ι d_qty
表3:d_produce
d_prd_no Ι d_prd_qty
三个表,全部用d_prd_no关联,想要的结果如下:
1、首先把表1,d_stock的值全部列出
2、表2,d_sale中按d_prd_no分类汇总d_qty,跟表1中d_prd_no相同的,在后面列出汇总值,没有就标一个‘0’
3、表3,d_produce中按d_prd_no分类汇总d_prd_qty,跟表1中d_prd_no相同的,在后面列出汇总值,没有就标一个‘0 ’
[ 表1 ][ 表2 ][ 表3 ]
d_prd_no Ι d_product Ι d_pur_qty Ι d_qty Ι d_prd_qty
001 A 100 50 50
002 B 200 0 200
003 C 300 100 0
------解决思路----------------------
--差不多像这样
select a.*,b.d_qty,c.d_prd_qty from d_stock a left join
(select d_prd_no,SUM(d_qty) d_qty from d_sale group by d_prd_no) b
on a.d_prd_no=b.d_prd_no left join
(select d_prd_no,SUM(d_prd_qty) d_prd_qty from d_produce group by d_prd_no) c
on c.d_prd_no=a.d_prd_no
------解决思路----------------------
select a.*, isnull(b.d_qty, 0) d_qty, isnull(c.d_prd_qty, 0) d_prd_qty
from d_stock a
left join (select d_prd_no, SUM(d_qty) d_qty from d_sale group by d_prd_no) b
on a.d_prd_no = b.d_prd_no
left join (select d_prd_no, SUM(d_prd_qty) d_prd_qty
from d_produce
group by d_prd_no) c
on c.d_prd_no = a.d_prd_no