典型的2个表连接

表a
品名      进货数量    进货价值     进货人
电视机    4            8000                 小张      
电话      10           5000                  小刘
电视机    5            10000                小王   

表b
品名       出货数量    出货价值       出货人
电视机      2            9000                 小胡
VCD         5            2500                 大李
VCD         1             500                   老刘

查询得到
品名      进货数量    进货价值      出货数量    出货价值      进货次数        出货次数
电视机    9               18000               2                 9000                 2                     1
电话      10               5000                 0                  0                       1                     0
VCD        0               0                        6                 3000                 0                     2


if  not  object_id(N 'Tempdb..#a' is  null
     drop  table  #a
Go
Create  table  #a([品名] nvarchar(23),[进货数量]  int ,[进货价值]  int ,[进货人] nvarchar(22))
Insert  #a
select  N '电视机' ,4,8000,N '小张'  union  all
select  N '电话' ,10,5000,N '小刘'  union  all
select  N '电视机' ,5,10000,N '小王'
GO
if  not  object_id(N 'Tempdb..#b' is  null
     drop  table  #b
Go
Create  table  #b([品名] nvarchar(23),[出货数量]  int ,[出货价值]  int ,[出货人] nvarchar(22))
Insert  #b
select  N '电视机' ,2,9000,N '小胡'  union  all
select  N 'VCD' ,5,2500,N '大李'  union  all
select  N 'VCD' ,1,500,N '老刘'
Go
--测试数据结束
SELECT   CASE  WHEN  t1.品名  IS  NULL  THEN  t2.品名
              ELSE  t1.品名
         END  AS  品名 ,
         ISNULL (进货数量,0) 进货数量 ,
         ISNULL (进货价值,0) 进货价值,
         ISNULL (出货数量,0) 出货数量,
         ISNULL (出货价值,0) 出货价值,
         ISNULL (进货次数,0) 进货次数,
         ISNULL (出货次数,0) 出货次数
FROM    
        (  SELECT     品名 ,
                     SUM (进货数量)  AS  进货数量 ,
                     SUM (进货价值)  AS  进货价值 ,
                     COUNT (1)  AS  进货次数
           FROM       #a
           GROUP  BY   品名
         ) t1
         FULL  JOIN 
               (  SELECT   品名 ,
                             SUM (出货数量)  AS  出货数量 ,
                             SUM (出货价值)  AS  出货价值 ,
                             COUNT (1)  AS  出货次数
                     FROM     #b
                     GROUP  BY  品名
                   ) t2 
      ON  t2.品名 = t1.品名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值