交叉查询并求和,不要显示0
各位高手,我有一个交叉查询,目标是为了按pathid分组,并求出各并对breed的值求和,功能已实现,但是显示的结果有很多0,我想把为0的数据都变成空,不显示出来,该怎么改进,请指教!谢谢
CREATE procedure he_o;1
as
declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',sum(case when pathid= ' ' '+pathid+ ' ' ' then amount else ' ' ' ' end) as [ '+pathid+ '] '
from he_productorder_view group by pathid
exec( 'select sum(amount) as amount,breed '+ @sql+ ' from he_productorder_view group by breed,pid order by pid asc ')
GO
------解决方案--------------------try
CREATE procedure he_o;1
as
declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',max(case when pathid= ' ' '+pathid+ ' ' ' then Rtrim(amount) else ' ' ' ' end) as [ '+pathid+ '] '
from he_productorder_view group by pathid
exec( 'select sum(amount) as amount,breed '+ @sql+ ' from he_productorder_view group by breed,pid order by pid asc ')
GO
------解决方案--------------------try:
--加上and amount> 0
CREATE procedure he_o;1
as
declare @sql varchar(8000)
set @sql= ' '
select @sql=@sql+ ',sum(case when pathid= ' ' '+pathid+ ' ' ' and amount> 0 then amount else ' ' ' ' end) as [ '+pathid+ '] '
from he_productorder_view group by pathid
exec( 'select sum(amount) as amount,breed '+ @sql+ ' from he_productorder_view group by breed,pid order by pid asc ')
GO