declare @s varchar(8000),@i int
set @s=''
set @i=1while @i<=31
begin
    set @s=@s+',['+cast(@i as varchar(2))+']=sum(case when day(billdate)='+cast(@i as varchar(2))+ 'then quantity else 0 end)'
    set @i=@i+1
endset @s='select goodsno'+@s+' from 结果 group by goodsno'
print @s
exec(@s)