sql case语句的问题

想对周数计数
计算一段时间内,周一多少,周二多少,周三多少……

  select @weday=DateName(dw,@time)
  case @weday
  when '1' then set @pro_1 = @pro_1 + 1
  when '2' then set @pro_2 = @pro_2 + 1
  when '3' then set @pro_3 = @pro_3 + 1
  when '4' then set @pro_4 = @pro_3 + 1
  when '5' then set @pro_5 = @pro_5 + 1
  when '6' then set @pro_6 = @pro_6 + 1
  when '7' then set @pro_7 = @pro_7 + 1
  end
这段代码有问题,请问怎么实现?
谢谢

作者: csdlinux   发布时间: 2011-06-10

@pro_1是累计周一的次数,@pro_2是累计周二的次数……

作者: csdlinux   发布时间: 2011-06-10

有问题, set 不能放在case when里面。

作者: maco_wang   发布时间: 2011-06-10

SQL code
  select @weday=DateName(dw,@time)
  @pro_1 = (case  when @weday = '1' then   @pro_1 + 1  else @pro_1 end),
  @pro_2 = (case  when @weday = '2' then   @pro_2 + 1  else @pro_2 end),
  @pro_3 = (case  when @weday = '3' then   @pro_3 + 1  else @pro_3 end),
  @pro_4 = (case  when @weday = '4' then   @pro_4 + 1  else @pro_4 end),
  @pro_5 = (case  when @weday = '5' then   @pro_5 + 1  else @pro_5 end),
  @pro_6 = (case  when @weday = '6' then   @pro_6 + 1  else @pro_6 end),
  @pro_7 = (case  when @weday = '7' then   @pro_7 + 1  else @pro_7 end)

作者: abcjun188   发布时间: 2011-06-10