急求一个sql,请大师帮忙,谢谢

tang_xue 2006-11-10 05:08:17

已知表:
房间号 桌号 标志
1 101 使用
1 102 未用
1 103 禁用
2 201 使用
2 201 使用

求:房间号 使用 未用 禁用
1 1 1 1
2 2 0 0

请问sql怎么写?
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhhdyj 2006-11-10
  • 打赏
  • 举报
回复
DECLARE @tb TABLE([房间号] int, [桌号] int, [标志] varchar(100))
INSERT INTO @tb
SELECT 1, 101, '使用'
UNION ALL SELECT 1, 102, '未用'
UNION ALL SELECT 1, 103, '禁用'
UNION ALL SELECT 2, 201, '使用'
UNION ALL SELECT 2, 201, '使用'

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 禁用
FROM @tb
GROUP BY 房间号
allright_flash 2006-11-10
  • 打赏
  • 举报
回复
select 房间号 ,
sum(case when 标志='使用' then 1 else 0 end),
sum(case when 标志='未用' then 1 else 0 end),
sum(case when 标志='禁用' then 1 else 0 end)
from 表
group by 房间号
dawugui 2006-11-10
  • 打赏
  • 举报
回复
declare @t table(房间号 int,桌号 int,标志 varchar(4))
insert into @t select 1,101,'使用'
insert into @t select 1,102,'未用'
insert into @t select 1,103,'禁用'
insert into @t select 2,201,'使用'
insert into @t select 2,201,'使用'

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 禁用
from @t
group by 房间号



房间号 使用 未用 禁用
----------- ----------- ----------- -----------
1 1 1 1
2 2 0 0

(所影响的行数为 2 行)

dawugui 2006-11-10
  • 打赏
  • 举报
回复
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 禁用
from 表
group by 房间号
子陌红尘 2006-11-10
  • 打赏
  • 举报
回复
declare @t table(房间号 int,桌号 int,标志 varchar(4))
insert into @t select 1,101,'使用'
insert into @t select 1,102,'未用'
insert into @t select 1,103,'禁用'
insert into @t select 2,201,'使用'
insert into @t select 2,201,'使用'

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 禁用
from
@t
group by
房间号

/*
房间号 使用 未用 禁用
----------- ----------- ----------- -----------
1 1 1 1
2 2 0 0
*/
dawugui 2006-11-10
  • 打赏
  • 举报
回复
select 房间号 ,
sum(case when 标志='使用' then 1 else 0 end),
sum(case when 标志='未用' then 1 else 0 end),
sum(case when 标志='禁用' then 1 else 0 end)
from 表
group by 房间号
子陌红尘 2006-11-10
  • 打赏
  • 举报
回复
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 禁用
from
已知表
group by
房间号

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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