sql语句中用sum()函数输出为null?

王者coco 2009-07-24 09:29:52
select count(*) as number,sum(case when signstate=0

then 1 else 0 end) as internet,sum(case when signstate=1 then 1 else 0 end) as

paper

from stusignsys as stu,fdzlist as fdz,studykindlist as st

where stu.fdzid=fdz.fdzid and st.studykindid like 'b%'

and fdz.fdzid='11001' and stu.stu_level='200203' and stu.signdate between '2001-3-3' and '2005-3-5'

and stu.studykindID=st.studykindID

这条语句输出三列,分别是
number internet paper
0 null null



即使查不到数据也应该为0,为什么是null呢?
...全文
760 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
王者coco 2009-07-24
  • 打赏
  • 举报
回复
为什么在页面上没有显示0?
王者coco 2009-07-24
  • 打赏
  • 举报
回复
高手帮忙~
王者coco 2009-07-24
  • 打赏
  • 举报
回复
sql是有点复杂,关键是怎样让它在页面上显示为0
大家帮个忙,这个问题搞不定啊
net_yuhai 2009-07-24
  • 打赏
  • 举报
回复
有点复杂的SQL
王者coco 2009-07-24
  • 打赏
  • 举报
回复
高手帮忙撒
王者coco 2009-07-24
  • 打赏
  • 举报
回复
<%
i=1
do while not rs.eof
%>


<tr>
<td> <%=i %> </td>
<td style="width: 20px"> <%=rs("fdznames") %> </td>
<%
do while not rsStat.eof
%>
<td> <%=rsStat("stat") %> </td>
<td> <%=rsStat("internet") %> </td> '前三列
<td> <%=rsStat("paper") %> </td>
<%
rsStat.MoveNext
loop
%>
********************************************************************************************************
<%
do while not rs.eof
if rs("number") = "" or isnull(rs("number")) then '判断是否空
%>
<td><%response.Write("0") %></td> '第四列
<%else %>
<td><%=rs("number") %></td>
<%
end if
rs.MoveNext
loop
%>>**********************************************************************************************************
<%
do while not rsTot.eof
%>
<td> <%=rsTot("tot") %> </td>
<td> <%=rsTot("internet") %> </td> '5、6、7列
<td> <%=rsTot("paper") %> </td>
<%
rsTot.MoveNext
loop
%>
***********************************************************************************************************
<%
do while not rs.eof
if rs("number") = "" or isnull(rs("number")) then '判断是否为空
%>
<td><%response.Write("0") %></td> '第八列
<%else %>
<td><%=rs("number") %></td>
<%
end if
rs.MoveNext
loop
%>
***********************************************************************************************************
<%
do while not rsTotal.eof
%>
<td> <%=rsTotal("total") %> </td>
<td> <%=rsTotal("internet") %> </td> '最后三列
<td> <%=rsTotal("paper") %> </td>
<%
rsTotal.MoveNext
loop
%>
</tr>
<%

i=i+1
loop
%>


在红色部分判断如果为空则输出0,但是没有输出,可能与上面的sql语句有关



哪位能看出问题来?
王者coco 2009-07-24
  • 打赏
  • 举报
回复
之前这样判断的,但是不对
<%
do while not rs.eof
if rs("number") = "" or isnull(rs("number")) then '判断是否为空%>
<td style="width: 20px">
0
</td>
<%
else
%>
<td style="width: 20px">
<%=rs("number") %>
</td>
<%
end if
rs.MoveNext
loop
%>
shenzhenNBA 2009-07-24
  • 打赏
  • 举报
回复
有可能 where 后面的一大推条件限制太多,可能导致查询的结果没有 signstate 列所以,出来的就为null,还有 signstate 本身为null的情况也出这个结果, isnull()处理

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧