• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

将a表中的数据按日期逐行相减得到的结果写入b表

cy3_yyz 2008-02-20 12:12:01
a表
日期时间 wd yl ll wd1 yl1 ll1 .........
2008-2-15 9:00:00 50 5 300 40 4 200
2008-2-15 10:00:00 60 5 800 50 3 600
2008-2-15 11:00:00 40 5 2000 37 5 1000
.
.
.
.
b表(要得到的结果)
日期时间 ll ll1 .........
2008-2-15 9:00:00 300 200
2008-2-15 10:00:00 500 400
2008-2-15 11:00:00 1200 400
.
.
.
也就是将a表的ll,ll1,....依据日期时间((2008-2-15 10:00:00)-(2008-2-15 9:00:00))
相减得到ll,ll1,.....差值写入b表中,应该怎样写!


多谢大家!!我是初学者!!
...全文
109 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cy3_yyz 2008-02-20
因为初学,好多具体语句不明白,再问问如何将这个结果写入其他的表
回复
中国风 2008-02-20
declare @A table (日期时间 datetime,ll int,ll1 int)
insert @A select '2008-2-15 9:00:00',300,200
insert @A select '2008-2-15 10:00:00',800,600
insert @A select '2008-2-15 11:00:00',2000,1000

select
日期时间,
[ll]=ll-isnull((select ll from @A where 日期时间=(select max(日期时间) from @A where 日期时间<t.日期时间)),0),
[ll1]=ll1-isnull((select ll1 from @A where 日期时间=(select max(日期时间) from @A where 日期时间<t.日期时间)),0)
from
@A t


(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)

日期时间 ll ll1
------------------------------------------------------ ----------- -----------
2008-02-15 09:00:00.000 300 200
2008-02-15 10:00:00.000 500 400
2008-02-15 11:00:00.000 1200 400

(所影响的行数为 3 行)


回复
中国风 2008-02-20
select 
日期时间,
[ll]=ll-isnull((select ll from A where 日期时间=(select max(日期时间) from A where 日期时间<t.日期时间)),0),
[ll1]=ll1-isnull((select ll1 from A where 日期时间=(select max(日期时间) from A where 日期时间<t.日期时间)),0)
from
A t
回复
cy3_yyz 2008-02-20
已经解决!谢谢Roy_88!!
回复
cy3_yyz 2008-02-20
写入其他表我已经明白如下
declare @A table (日期时间 datetime,ll int,ll1 int)
insert @A select '2008-2-15 9:00:00',300,200
insert @A select '2008-2-15 10:00:00',800,600
insert @A select '2008-2-15 11:00:00',2000,1000
create table b
(
日期时间 datetime,
ll int,
ll1 int
)
insert into b(日期时间,ll,ll1)
select
日期时间,
[ll]=ll-isnull((select ll from @A where 日期时间=(select max(日期时间) from @A where 日期时间<t.日期时间)),0),
[ll1]=ll1-isnull((select ll1 from @A where 日期时间=(select max(日期时间) from @A where 日期时间<t.日期时间)),0)
from
@A t

我还有不明白的,就是如何获取a表中的数据而不是
insert @A select '2008-2-15 9:00:00',300,200
insert @A select '2008-2-15 10:00:00',800,600
insert @A select '2008-2-15 11:00:00',2000,1000
兄弟我实在是太笨!!!
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-02-20 12:12
社区公告
暂无公告