SQL分类汇总
数据很简单,表A,Dc_ID,Dc_nameA1,AAAA2,AAB表B,Dp_ID,Dc_ID,use_statusB1,A1,'使用中'B2,A1,'未使用'B3,A...
数据很简单,
表A,Dc_ID,Dc_name
A1,AAA
A2,AAB
表B, Dp_ID,Dc_ID,use_status
B1,A1,'使用中'
B2,A1,'未使用'
B3,A2,'使用中'
显示表A的Dc_ID,Dc_name,以及表B的不同的use_status的数量
如,Dc_ID,Dc_name,'使用中','未使用'
A1,AAA,1,1
A2,AAB,1,0 展开
表A,Dc_ID,Dc_name
A1,AAA
A2,AAB
表B, Dp_ID,Dc_ID,use_status
B1,A1,'使用中'
B2,A1,'未使用'
B3,A2,'使用中'
显示表A的Dc_ID,Dc_name,以及表B的不同的use_status的数量
如,Dc_ID,Dc_name,'使用中','未使用'
A1,AAA,1,1
A2,AAB,1,0 展开
4个回答
美林数据技术股份有限公司
2020-10-29 广告
2020-10-29 广告
Tempo大数据分析平台,是一款面向企业用户的数据分析与应用工具,为用户提供报表设计、可视化分析、机器学习、文本分析等自助式数据分析与探索。平台基于大数据架构,集数据接入、数据分析探索、成果管理与应用为一体,面向企业全民用户提供从数据到业务...
点击进入详情页
本回答由美林数据技术股份有限公司提供
展开全部
SELECT 表A.*,表B.使用中,表B.未使用
FROM 表A LEFT JOIN
(
SELECT Dc_ID,
SUM( CASE Dc_name WHEN '使用中' THEN 1 ELSE 0 END ) AS 使用中,
SUM( CASE Dc_name WHEN '未使用' THEN 1 ELSE 0 END ) AS 未使用
FROM 表B
GROUP BY Dc_ID
)AS 表B
ON 表A.Dc_ID = 表B.Dc_ID
FROM 表A LEFT JOIN
(
SELECT Dc_ID,
SUM( CASE Dc_name WHEN '使用中' THEN 1 ELSE 0 END ) AS 使用中,
SUM( CASE Dc_name WHEN '未使用' THEN 1 ELSE 0 END ) AS 未使用
FROM 表B
GROUP BY Dc_ID
)AS 表B
ON 表A.Dc_ID = 表B.Dc_ID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--> 测试数据: @a
declare @a table (Dc_ID varchar(2),Dc_name varchar(3))
insert into @a
select 'A1','AAA' union all
select 'A2','AAB'
--> 测试数据: @b
declare @b table (Dp_ID varchar(2),Dc_ID varchar(2),use_status varchar(6))
insert into @b
select 'B1','A1','使用中' union all
select 'B2','A1','未使用' union all
select 'B3','A2','使用中'
select a.Dc_ID,a.Dc_name
,未使用 = sum(case when b.use_status = '未使用' then 1 else 0 end)
,使用 = sum(case when b.use_status = '使用中' then 1 else 0 end)
from @a a
inner join @b b on a.dc_id = b.dc_id
group by a.Dc_ID,a.Dc_name
Dc_ID Dc_name 未使用 使用
----- ------- ----------- -----------
A1 AAA 1 1
A2 AAB 0 1
(所影响的行数为 2 行)
declare @a table (Dc_ID varchar(2),Dc_name varchar(3))
insert into @a
select 'A1','AAA' union all
select 'A2','AAB'
--> 测试数据: @b
declare @b table (Dp_ID varchar(2),Dc_ID varchar(2),use_status varchar(6))
insert into @b
select 'B1','A1','使用中' union all
select 'B2','A1','未使用' union all
select 'B3','A2','使用中'
select a.Dc_ID,a.Dc_name
,未使用 = sum(case when b.use_status = '未使用' then 1 else 0 end)
,使用 = sum(case when b.use_status = '使用中' then 1 else 0 end)
from @a a
inner join @b b on a.dc_id = b.dc_id
group by a.Dc_ID,a.Dc_name
Dc_ID Dc_name 未使用 使用
----- ------- ----------- -----------
A1 AAA 1 1
A2 AAB 0 1
(所影响的行数为 2 行)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询