大侠:SQL查询问题?急!!!

jwdream2008 2009-12-10 03:12:05
问题描述:
前提: 数据表中有一列字段:PrintNum int型 (表示打印次数,初始值为0,每打印一次数值加1)。
要求结果如下:
用户可以查询:未打印的数据(PrintNum=0)、已打印数据(PrintNum>0)、全部数据(PrintNum>=0)这三种类型的数据。
请问如何使用一个SQL语句实现上述要求!
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinjazzli 2009-12-10
  • 打赏
  • 举报
回复
那不行~~~
jwdream2008 2009-12-10
  • 打赏
  • 举报
回复
首先谢谢各位,我不是要统计打印数量!
数据形式如下:
name PrintNum
张三 0
李四 1

实现结果:
1:(未打印的记录)
name PrintNum
张三 0
2:(已打印的记录)
name PrintNum
李四 1
3:(全部记录)
name PrintNum
张三 0
李四 1
要求:
使用一个SQL语句实现上述三种要求的查询!
随风 2009-12-10
  • 打赏
  • 举报
回复
怎么sql版这么多专门回答问题的
--小F-- 2009-12-10
  • 打赏
  • 举报
回复
select
sum(case PrintNum when 0 then 1 else 0 end) as 未打印的数据,
sum(case when PrintNum>0 then 1 else 0 end) as 已打印数据,
count(1) as 全部数据
from
tb
sgtzzc 2009-12-10
  • 打赏
  • 举报
回复
PrintNum 不会有负数吧,如果有,最后一个改为
sum(case when PrintNum>=0 then 1 else 0 end) as 全部数据
jinjazzli 2009-12-10
  • 打赏
  • 举报
回复
select 
未打印的数据=sum(case when PrintNum=0 then 1 else 0 end),
已打印的数据=sum(case when PrintNum>0 then 1 else 0 end),
全部数据=sum(case when PrintNum>=0 then 1 else 0 end)
from tb
sgtzzc 2009-12-10
  • 打赏
  • 举报
回复
select
sum(case when PrintNum=0 then 1 else 0 end) as 未打印的数据,
sum(case when PrintNum>0 then 1 else 0 end) as 已打印数据,
count(1) as 全部数据
from
tb

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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