这个sql谁知道怎么写?

tedagov328281 2009-04-08 04:14:49
type sj cl
A 2009-01-03 50
A 2009-01-05 50
A 2009-01-07 80
A 2009-01-08 50
A 2009-01-09 10

B 2009-01-03 50
B 2009-01-05 50
B 2009-01-07 80
B 2009-01-08 50
B 2009-01-09 10

想转换为这样的格式,用sql怎么写
时间 A.cl B.cl
2009-01-03 50 50
2009-01-05 50 50
2009-01-07 80 80
2009-01-08 50 50
2009-01-09 10 10








...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tomzzu 2009-04-08
  • 打赏
  • 举报
回复
LZ就一句话

select sj, sum(case type when 'A' then cl else 0 end) as A_CL,
sum(case type when 'B' then cl else 0 end) as B_CL
from 表名
group by sj
order by sj
csdyyr 2009-04-08
  • 打赏
  • 举报
回复
select a.sj,a.cl,b.cl
from a join b on a.sj=b.sj
百年树人 2009-04-08
  • 打赏
  • 举报
回复
---测试数据---
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([type] varchar(1),[sj] datetime,[cl] int)
insert [tb]
select 'A','2009-01-03',50 union all
select 'A','2009-01-05',50 union all
select 'A','2009-01-07',80 union all
select 'A','2009-01-08',50 union all
select 'A','2009-01-09',10 union all
select 'B','2009-01-03',50 union all
select 'B','2009-01-05',50 union all
select 'B','2009-01-07',80 union all
select 'B','2009-01-08',50 union all
select 'B','2009-01-09',10

---查询---
select
distinct
sj,
(select cl from tb where sj=t.sj and [type]='A') as [A.cl],
(select cl from tb where sj=t.sj and [type]='B') as [B.cl]
from tb t


---结果---
sj A.cl B.cl
------------------------------------------------------ ----------- -----------
2009-01-03 00:00:00.000 50 50
2009-01-05 00:00:00.000 50 50
2009-01-07 00:00:00.000 80 80
2009-01-08 00:00:00.000 50 50
2009-01-09 00:00:00.000 10 10

(所影响的行数为 5 行)

22,210

社区成员

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

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