我要统计近4个星期所有车型(包括没有销售记录的)的销售数据,每个星期的数据格式如下:
(假设GL1 -- GL4就是所有的车型了)
  车型  黑 白  红 绿  合计  
  GL1    1  1   2  0   4
  GL2    0  2   1  0   3
  GL3    0  2   2  1   5
  GL4    2  0   0  0   2这样两个星期的横向连接就型如:(车型列重复)
  车型  黑 白  红 绿  合计车型  黑 白  红 绿  合计
  GL1    1  1   2  0   4  GL1    0  2   2  1   5
  GL2    0  2   1  0   3  GL2    1  0   1  0   2
  GL3    0  2   2  1   5  GL3    0  1   0  0   1
  GL4    2  0   0  0   2  GL4    1  3   0  0   4而车的颜色是动态生成的,不一定是黑,白,红,绿...那么,我怎么去掉其他星期的车型列???

解决方案 »

  1.   

    --这样
    select a.车型,
    a.黑,a.白,a.红,a.绿,a.合计,
    b.黑,b.白,b.红,b.绿,b.合计,
    c.黑,c.白,c.红,c.绿,c.合计,
    d.黑,d.白,d.红,d.绿,d.合计
    from ...
      

  2.   

    颜色列名是动态生成的....有个要统计的颜色表:tb_color_stat(ID int,Nam varchar(10))
      

  3.   

    select t1.*,t2.*,t3.*,t4.* from
    (select 车型,黑,白,红,绿,合计 from tb where date = '第一个星期')  t1
    left join
    (select 车型,黑,白,红,绿,合计 from tb where date = '第二个星期')  t2 
    on t1.车型 = t2.车型
    left join
    (select 车型,黑,白,红,绿,合计 from tb where date = '第三个星期')  t3
    on t1.车型 = t3.车型
    left join
    (select 车型,黑,白,红,绿,合计 from tb where date = '第四个星期')  t4
    on t1.车型 = t4.车型
      

  4.   

    dawugui(潇洒老乌龟) ( ) 信誉:100  2007-08-27 09:56:03  得分: 0  
    ------
    left join是纵向联接的吧..?
    能帮我认真看一下吗?是另外的问题 谢谢
      

  5.   

    希望我能把问题描述清楚...
    其中某个星期的SQL如下:
    select @s='select 车型=b.txt'
    select @s=@s+','+quotename(ColorNam,'''')+'=(case  when 颜色 like ''%'+ColorNam+'%'' then 1 else 0 end) '
            from tb_stat_color
    select @s=@s+',合计=count(颜色) into ##t0 from vw_car_sale_stat a right join (select txt from tb_car_type where depth=2) b on a.车型=b.txt
             and   a.销售时间 between '+quotename('2007-1-1','''')+' and '+quotename('2007-1-7','''')
             +' group by all b.txt,a.颜色 ' 
    exec(@s)
    得到的结果类似:
     车型  黑 白  红 绿  合计  
      GL1    1  1   2  0   4
      GL2    0  2   1  0   3
      GL3    0  2   2  1   5
      GL4    2  0   0  0   2然后是4个结果的横向连接:
    select * from ##t0 a,##t1 b,##t2 c,##t3 d where a.车型=b.车型 and a.车型=c.车型 and a.车型=d.车型 
    这样会有4个车型列,我只想要第一个星期的车型列...怎么办?
      

  6.   

    这样两个星期的横向连接就型如:(车型列重复)....4个以此类推
      车型  黑 白  红 绿  合计车型  黑 白  红 绿  合计
      GL1    1  1   2  0   4  GL1    0  2   2  1   5
      GL2    0  2   1  0   3  GL2    1  0   1  0   2
      GL3    0  2   2  1   5  GL3    0  1   0  0   1
      GL4    2  0   0  0   2  GL4    1  3   0  0   4