select @a = case when kind = 'A' then ISNULL(sum(price),0)
@b = case when kind = 'B' then ISNULL(sum(price),0)
@c = case when kind = 'C' then ISNULL(sum(price),0)
@d = case when kind = 'D' then ISNULL(sum(price),0)
from pos
@b = case when kind = 'B' then ISNULL(sum(price),0)
@c = case when kind = 'C' then ISNULL(sum(price),0)
@d = case when kind = 'D' then ISNULL(sum(price),0)
from pos
@b = case when kind = 'B' then ISNULL(sum(price),0) end
@c = case when kind = 'C' then ISNULL(sum(price),0) end
@d = case when kind = 'D' then ISNULL(sum(price),0) end
from pos
,@b=sum(case kind when 'B' then 1 else 0 end)
,@c=sum(case kind when 'C' then 1 else 0 end)
,@d=sum(case kind when 'D' then 1 else 0 end)
from pos
select kind,ISNULL(sum(price),0)
from pos
group by kind
@b = (case when kind = 'B' then ISNULL(sum(price) end)
@c = (case when kind = 'C' then ISNULL(sum(price) end)
@d = (case when kind = 'D' then ISNULL(sum(price) end)
from pos
select @a=isnull(sum(case kind when 'A' then price else 0 end),0)
,@b=isnull(sum(case kind when 'B' then price else 0 end),0)
,@c=isnull(sum(case kind when 'C' then price else 0 end),0)
,@d=isnull(sum(case kind when 'D' then price else 0 end),0)
from pos
set @i =65
WHILE @i<=90
begin
insert into #a
SELECT CHAR(@i),ISNULL(sum(price),0) from pos where kind =CHAR(@i)
set @i=@i+1
endselect * from #adrop table #a 这样建了一个临时表,就会把Kind从A到Z的分组汇总price值保存到临时表
,@b=isnull(sum(case kind when 'B' then price else 0 end),0)
,@c=isnull(sum(case kind when 'C' then price else 0 end),0)
,@d=isnull(sum(case kind when 'D' then price else 0 end),0)
from posisnull 不写的话,@a……会变成null的可能。
pos数据量在30万条。
select @a=case kind when 'A' then ISNULL(sum(price),0) else 0 end,@b=case kind when 'B' then ISNULL(sum(price),0) else 0 end,@c=case kind when 'C' then ISNULL(sum(price),0) else 0 end,@d=case kind when 'D' then ISNULL(sum(price),0) else 0 end from pos
谢谢你,但是你这样写法通不过阿,提示没有group by什么地