日期:2014-05-18 浏览次数:20616 次
declare @sql varchar(8000)
set @sql='select plevel'
select
@sql=@sql+
',['+dd+']=sum(
case convert(varchar(10),workdate,120)
when '''+dd+'''
then Times*qty
else 0
end
)'
from (
select distinct
dd=convert(varchar(10),workdate,120)
from (
Select
a.*
from
(
Select
plevel,
workdate,
qty*times as ff
from tb
group by plevel,workdate,qty*times
) a
)tmp
where ff>500
) ss
set @sql=@sql+' from tb group by plevel'
exec(@sql)
------解决方案--------------------
declare @sql varchar(8000)
set @sql='select plevel'
select @sql=@sql+',['+dd+']=sum(case convert(varchar(10),workdate,120) when '''+dd+''' then Times*qty else 0 end)'
from
(
select distinct dd=convert(varchar(10),workdate,120)
from
(
Select a.*
from
(
Select plevel,workdate,qty*times as ff
from tb
group by plevel,workdate,qty*times
) a
where ff>500
) ss) aa
set @sql=@sql+' from tb group by plevel'