复杂查询
有表cza字段有
票号 客户全称 客户编码 此次应收 日期 操作员
A200602010001 某公司 3002 20.00
A200602010002 现款 3005 90.00
想得到
某公司 张三 现款 ...
20060101 30.00 301.00 10.00 ...
20060102 20.00 321.00 54.00 ...
20060103 95.00 66.00 0 ....
...
或者得到
客户全称 20060101 20060102 20060103 ....
某公司 80.00 30.00 62.00
张三 63.00 0.00 9.00 ...
现款 62.00 0.00 106.00 ...
该如何写,谢谢
日期可由substring(票号,5,8)得到
------解决方案--------------------第一种结果
declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',sum(case 客户编码 when ' ' '+客户编码+ ' ' ' then 此次应收 else 0 end) as [ '+客户全称+ '] '
from cza
group by 客户编码,客户全称
exec( 'select substring(票号,2,8) as 日期 '+@sql+ ' from cza group by substring(票号,2,8) ')
第二种结果
declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',sum(case substring(票号,2,8) when ' ' '+substring(票号,2,8)+ ' ' ' then 此次应收 else 0 end) as [ '+substring(票号,2,8)+ '] '
from cza
group by substring(票号,2,8)
exec( 'select 客户全称 '+@sql+ ' from cza group by 客户全称 ')