本帖最后由 AOKMOKM 于 2013-02-25 10:38:22 编辑

解决方案 »

  1.   

    行转列应用啊
    declare @sql nvarchar(max)
    select @sql=isnull(@sql+',','')+ quotename(食品名称)+'数量' from 食品表 group by 食品名称
    set @sql='select * from (select a.客户编号,b.食品名称,a.数量 from 数量表 a,食品表 b where a.食品编号=b.食品编号)t
    pivot (sum(数量) for 食品名称 in ('+@sql+'))a'
    select @sql
    exec(@sql)
      

  2.   

    declare @sql nvarchar(max)
    select @sql=ISNULL(@sql,'')+',sum(case when 食品编号='''+食品编号+''' then 数量 else 0 end)['+食品名称+'数量]' from 食品表
    exec('select 客户编号'+@sql+' from 数量表 group by 客户编号')