有20个表,数据类型,结构完全相同
a01  产品名称,数量
b01 产品名称,数量
c01 产品名称,数量
d01 产品名称,数量
.
.
.想要用语句实现每个表的累计数量
a01     b01     c01    d01
1000    500     3000    444

解决方案 »

  1.   

    declare @tab varchar(20)
    set @tab='表名'
    print('select sum(case when col1=''a01'' then col3 else 0 end)a01,
    sum(case when col1=''a01'' then col3 else 0 end)b01,
    sum(case when col1=''a01'' then col3 else 0 end)c01,
    sum(case when col1=''a01'' then col3 else 0 end)d01
    from '+@tab+' group by col1')
      

  2.   

    print--改exec 
    varchar(20) --改大一点varchar(100),刚才就因为这一分没拿到
      

  3.   

    没明白,我有20个表,里面的结构相同,我想用一个SELECT语名查出所有20个表里分别的总数量
      

  4.   


    select 
    (select Sum(数量) from a)a
    Cross join 
    (select Sum(数量) from b)b
    Cross join 
    (select Sum(数量) from c)c
    Cross join 
    (select Sum(数量) from d)d
      

  5.   

    select 
    (select Sum(数量) as a01 from a01)a
    Cross join 
    (select Sum(数量) as b01 from b01)b
    Cross join 
    (select Sum(数量) as c01 from c01)c
    Cross join 
    (select Sum(数量) as d01 from d01)d
      

  6.   

    lwl0606(寒泉) 的方法可以,表名有规律写成动态的好点
      

  7.   

    服务器: 消息 156,级别 15,状态 1,行 3
    在关键字 'Cross' 附近有语法错误。怎么回事?
      

  8.   

    select * from
    (select Sum(数量) as a01 from a01)a
    Cross join 
    (select Sum(数量) as b01 from b01)b
    Cross join 
    (select Sum(数量) as c01 from c01)c
    Cross join 
    (select Sum(数量) as d01 from d01)d
    这样对了,谢谢各位,马上给分