ASP中SQL的count,sum函数出错,请大虾帮忙看看
objrs1="selectcount(职别),sum(casewhen职别='科级'thenokelse0end)as科级,sum(casewhen职别='队级'the...
objrs1="select count(职别),sum(case when 职别='科级' then ok else 0 end) as 科级,sum(case when 职别='队级' then ok else 0 end) as 队级,sum(case when 职别='一般管理人员' then ok else 0 end) as 一般管理人员,sum(case when 职别='上级检查' then ok else 0 end) as 上级检查,sum(case when 职别='工人' then ok else 0 end) as 工人 from (select 职别,count(*) as ok from xjkq where 时长 is null group by 职别) as 职别 group by 职别"
说明 :xjkq表里有N个字段,其中包括职别、时长.职别里的值只有科级,队级,一般管理人员、工人、上级检查这几个.我想对他们做统计,看看分别有多少个科级,队级,一般管理人员、工人、上级检查.可是我用
while not rsquery1.eof
u_sum0=rsquery1.fields(0).value
u_sum1=rsquery1.fields(1).value
u_sum2=rsquery1.fields(2).value
u_sum3= rsquery1.fields(3).value
u_sum4= rsquery1.fields(4).value
u_sum5= rsquery1.fields(5).value
rsquery1.movenext
wend
获取到值后怎么显示的时候只显示其中一个值的统计,其它都是0??例如如果
u_sum0不是0的话,那么其它都是0,u_sum0是0的话,u_sum1不是0,那么它后面的都是0......非常困惑
找到问题所在了,也谢谢阳光上的桥的代码,这样看起来更简洁些。问题出在最后那句“group by 职别”,分组排序后,他就只认第一组的值,没搞懂。。。。把它去掉其它都能正常统计了。 展开
说明 :xjkq表里有N个字段,其中包括职别、时长.职别里的值只有科级,队级,一般管理人员、工人、上级检查这几个.我想对他们做统计,看看分别有多少个科级,队级,一般管理人员、工人、上级检查.可是我用
while not rsquery1.eof
u_sum0=rsquery1.fields(0).value
u_sum1=rsquery1.fields(1).value
u_sum2=rsquery1.fields(2).value
u_sum3= rsquery1.fields(3).value
u_sum4= rsquery1.fields(4).value
u_sum5= rsquery1.fields(5).value
rsquery1.movenext
wend
获取到值后怎么显示的时候只显示其中一个值的统计,其它都是0??例如如果
u_sum0不是0的话,那么其它都是0,u_sum0是0的话,u_sum1不是0,那么它后面的都是0......非常困惑
找到问题所在了,也谢谢阳光上的桥的代码,这样看起来更简洁些。问题出在最后那句“group by 职别”,分组排序后,他就只认第一组的值,没搞懂。。。。把它去掉其它都能正常统计了。 展开
展开全部
objrs1="select count(职别),sum(case when 职别='科级' then ok else 0 end) as 科级,sum(case when 职别='队级' then ok else 0 end) as 队级,sum(case when 职别='一般管理人员' then ok else 0 end) as 一般管理人员,sum(case when 职别='上级检查' then ok else 0 end) as 上级检查,sum(case when 职别='工人' then ok else 0 end) as 工人 from (select 职别,count(*) as ok from xjkq where 时长 is null group by 职别) as 职别 group by 职别"
修改为:
objrs1="select 职别,sum(case when 职别='科级' then 1 else 0 end) as 科级,sum(case when 职别='队级' then 1 else 0 end) as 队级,sum(case when 职别='一般管理人员' then 1 else 0 end) as 一般管理人员,sum(case when 职别='上级检查' then 1 else 0 end) as 上级检查,sum(case when 职别='工人' then 1 else 0 end) as 工人 from xjkq where 时长 is null group by 职别"
修改为:
objrs1="select 职别,sum(case when 职别='科级' then 1 else 0 end) as 科级,sum(case when 职别='队级' then 1 else 0 end) as 队级,sum(case when 职别='一般管理人员' then 1 else 0 end) as 一般管理人员,sum(case when 职别='上级检查' then 1 else 0 end) as 上级检查,sum(case when 职别='工人' then 1 else 0 end) as 工人 from xjkq where 时长 is null group by 职别"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询