急急急!如何写出这个查询语句?????????????????????????大哥,帮忙呀!!!!1

loader 2004-09-02 08:44:04
类别 id 是否免收 金额
1 1 0 100
2 3 1 0
2 5 0 100
3 6 1 0
...

我要查询出一下表格:
类别 非免收人数 免收人数 金额
1 1 0 100
2 1 1 100
3 1 1 0

这个查询语句改怎么写??
是否免收:0:否;1:是 如果为1,则金额字段为0
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jadesun 2004-09-02
  • 打赏
  • 举报
回复
Declare @test Table(类别 smallint, [id] smallint, 是否免收 bit, 金额 smallint)
Insert into @test Select 1, 1, 0, 100
Union all Select 2, 3 , 1 , 0
Union all Select 2, 5, 0 , 100
Union all Select 3, 6, 1, 0

Select 类别,sum(case when 是否免收 = 1 then 1 else 0 end) as 非免收人数,
sum(case when 是否免收 = 0 then 1 else 0 end) as 免收人数,
sum(金额) as 金额 from @test group by 类别



(所影响的行数为 4 行)

类别 非免收人数 免收人数 金额
------ ----------- ----------- -----------
1 0 1 100
2 1 1 100
3 1 0 0

(所影响的行数为 3 行)
liushengni 2004-09-02
  • 打赏
  • 举报
回复
create table pp(類別 nvarchar(10),id int ,是否免收 int, 金額 int )
insert pp select '1','1','0','100'
union select '2','3','1','0'
union select '2','5','0','100'
union select '3','6','1','0'
select * from pp
select 類別,sum(case 是否免收 when '0' then 1 else 0 end) as 非免收人數,
sum(case 是否免收 when '0' then 0 else 1 end) as 免收人數,sum(金額) as 金額 from pp group by 類別
drop table pp
zhaovbo 2004-09-02
  • 打赏
  • 举报
回复
select 类别,sum(case 是否免收 when 0 then 1 else 0 end) as 非免收人数 ,sum(case 是否免收 when 1 then 0 else 1 end) 免收人数 , 金额
from 表
group by 类别
liuxiang_csdn 2004-09-02
  • 打赏
  • 举报
回复
select 类别,sum(1-是否免收),sum(是否免收),sum((1-是否免收)*金额)
from 表
group by 类别

sql_fly 2004-09-02
  • 打赏
  • 举报
回复
select 类别,sum(case when 是否免收=0 then 1 else 0 end)
,sum(是否免收),sum(金额)
from yourtable
group by 类别

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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