sql 创建临时表

时间:2025-04-25 17:35:14
 declare @channelid varchar(100)
set @channelid='''WH00026'',''WH00083'''
declare @sql varchar(1000)
if(object_id('tempdb.dbo.#ac') is not null)
begin
drop table #ac
end
create table #ac
(
channelid varchar(50),
pmoney decimal(18,2),
ptype tinyint,
inday varchar(10),
scale varchar(10),
comScale varchar(10)
)
set @sql='insert into #ac'
set @sql=@sql+' select a.channelid,a.pmoney,a.ptype,a.inday,a.scale,a.comScale'
set @sql=@sql+' from('
set @sql=@sql+' select oc.channelid,sum(totalFee) as pmoney,inday,scale,comScale,1 as ptype from orderCPS oc'
set @sql=@sql+' left join userInfo u on oc.channelid=u.channelid'
set @sql=@sql+' where inday between ''2016-10-13'' and ''2016-10-13'' and oc.channelid in ('+@channelid+') and (comOrderStatus is null or comOrderStatus=0)'
set @sql=@sql+' group by oc.channelid,inday,scale,comScale'
set @sql=@sql+' union all'
set @sql=@sql+' select oc.channelid,sum(totalFee) as pmoney,inday,scale,comScale,2 as ptype from orderCPS oc'
set @sql=@sql+' left join userInfo u on oc.channelid=u.channelid'
set @sql=@sql+' where inday between ''2016-10-13'' and ''2016-10-13'' and oc.channelid in ('+@channelid+') and orderStatus=0'
set @sql=@sql+' group by oc.channelid,inday,scale,comScale) a'
print @sql
exec(@sql);
select * from #ac