declare @sqlstr varchar(2500); --调试SQL
if(@countrowbefore = 0 and @countrowaccomplish = 0)
begin
print '执行到了3'
set @sqlstr= @sqlstr + 'select * ,'''+@EsName+'''+ as EsName,'''+@EsTypeName+''' as EsTypeName,'''+@EnergyTypeName+''' as EnergyTypeName,'+Cast(@EsPct as varchar(16))+' as EsPct,'+Cast(@ActPct as varchar(16))+' as ActPct,'''+@BuildingName+''' as BuildingName from
( select * from (select * from ESDataSumByHour where EsId='''+@EsId+''' and BuildingNo='''+@BuildingNo+''' and EnergyType='''+@EnergyType+''' and DADay='''+@DADayBefore+''' and (DateFlag =''A'' or DateFlag =''T'')) as pt
pivot (sum(SumQty) for DAHour in ([00],[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23])) as rt
union all
select * from (select * from ESDataSumByHour where EsId='''+@EsId+''' and BuildingNo='''+@BuildingNo+''' and EnergyType='''+@EnergyType+''' and DADay='''+@DADayAccomplish+''' and DateFlag =''B'') as pt
pivot (sum(SumQty) for DAHour in ([00],[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23])) as rt
) as rall '
print @sqlstr
print '执行到了3.1'
输出结果:
问题:怎么回事??? 中间的“ print @sqlstr”没有输出,而前后的标示都输出了。
------最佳解决方案--------------------
证明不是没执行,而是@sqlstr为空