sql怎么写

cjzm83 2010-06-08 11:53:17

表t
f1 f4
2010-01-01 3720
2010-01-15 300000
2010-02-8 16557
2010-02-23 104600

表s
m1-1 m1-2 m1-3 m2-1 m2-2 m2-3 其中m1-1代表一月份1-10号,m1-2(11-20号),类推..

要求根据表t字段f1的月份,天数插到表s对应的字段中,一个insert能搞定么
结果
表s
m1-1 m1-2 m1-3 m2-1 m2-2 m2-3
3720 300000 16557 2010-02-23
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
GOODlivelife 2010-06-08
  • 打赏
  • 举报
回复
剩下的事情就是行列转换了
GOODlivelife 2010-06-08
  • 打赏
  • 举报
回复
if object_id('[t]') is not null drop table [t]
go
create table [t]([f1] datetime,[f4] int)
insert [t]
select '2010-01-01',3720 union all
select '2010-01-15',300000 union all
select '2010-02-8',16557 union all
select '2010-02-23',104600
go

select
'm'+ltrim(month(f1))+'-'+ltrim((datepart(dd,f1)-1)/10+1) as m,f4
from t
/**
m f4
-------------------------- -----------
m1-1 3720
m1-2 300000
m2-1 16557
m2-3 104600

(4 行受影响)

**/
永生天地 2010-06-08
  • 打赏
  • 举报
回复
可能是这样

insert 表s
select case when f1 between '2010-1-1' and '2010-1-10' then f4 else null end,
case when f1 between '2010-1-11' and '2010-1-20' then f4 else null end,
......
from 表t

34,577

社区成员

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

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