将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表中,应该怎样写!


多谢大家!!我是初学者!!
...全文
164 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
兄弟我实在是太笨!!!

34,838

社区成员

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

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