这个SQL语句怎么写?

zytangzhou 2003-10-25 09:08:33
有一张表:a
电表读数 抄表日期
20 2000.12.31 14:30:00
40 2001.01.01 14:30:00
60 2001.01.02 14:30:00
......
要求求某段时间的供电量,大家都知道供电量是用现在的抄表日期的电表读数减去上次抄表日期的电表读数
这个SQL语句怎么写
...全文
26 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanyu368 2003-10-30
  • 打赏
  • 举报
回复
up
kingting 2003-10-30
  • 打赏
  • 举报
回复
数据库没做很好的设计
要用SQL语句来实现确实事倍功半
zytangzhou 2003-10-30
  • 打赏
  • 举报
回复
你们的回答都不能解决问题
zytangzhou 2003-10-25
  • 打赏
  • 举报
回复
txlicenhe(马可) :怎么不行啊
zytangzhou 2003-10-25
  • 打赏
  • 举报
回复
主要现在数据库跟表结构都定下来了
txlicenhe 2003-10-25
  • 打赏
  • 举报
回复
declare @rq1 datetime,@rq2 datetime

Select 编号,(Select 电表读数 from tableName where 抄表日期 = (Select max(抄表日期) from tableNmae where 抄表日期<= @rq2)) - (Select 电表读数 from tableName where 抄表日期 = (Select min(抄表日期) from tableNmae where 抄表日期>= @rq1))
from tableName

tiexinliu 2003-10-25
  • 打赏
  • 举报
回复
电力远程抄表 一次/5s ,我们就用一个表保存增量,算电量只用把这个时间段的增量累加就ok
zytangzhou 2003-10-25
  • 打赏
  • 举报
回复
表都设计好呀!怎么办?
zytangzhou 2003-10-25
  • 打赏
  • 举报
回复
要知道一天要抄96次表了呀!
zytangzhou 2003-10-25
  • 打赏
  • 举报
回复
我是简略的写了一下,电表编号当然有啦!主要是数据库已经固定了!
tanqth 2003-10-25
  • 打赏
  • 举报
回复
你贴出来的表结构不全啊。
至少得有一个电表的编号吧!!!

你在开发前一定要打表设计好,不然后面做起来比较烦,像你这样是不方便的。

如果只有一只电表的话,你这表结构还能用,就是以日期索引,然后用最后一行减去上面的一行就行了,不用SQL。
angle097113 2003-10-25
  • 打赏
  • 举报
回复
电表读数 抄表日期
SELECT 电表读数 FROM a WHERE 抄表日期=日期1 减去 SELECT 电表读数 FROM a WHERE 抄表日期=日期2不就是吗?不要见笑!
jingbianfc 2003-10-25
  • 打赏
  • 举报
回复
我和楼主是同行,铁心刘说得很对!
zhoutian618 2003-10-25
  • 打赏
  • 举报
回复
你贴出来的表结构不全啊。
至少得有一个电表的编号吧!!!
tiexinliu 2003-10-25
  • 打赏
  • 举报
回复
一个表保存本月读数,一个表保存上月读数
电表有编号吧,根据表号update一下不就出来了,或者生成一个新表。
dickeybird888 2003-10-25
  • 打赏
  • 举报
回复
(·¥·)
xiaocuo_zrf 2003-10-25
  • 打赏
  • 举报
回复
SQLServer:

Select
(Select 电表读数 Form Table Where 抄表日期 = '2001.01.02 14:30:00'
Where 电表号=‘XXX’) A
-
(Select 电表读数 Form Table Where 抄表日期 = '2000.12.31 14:30:00'
Where 电表号=‘XXX’) B

Oracle:

Select
(Select 电表读数 Form Table Where 抄表日期 = '2001.01.02 14:30:00'
Where 电表号=‘XXX’) A
-
(Select 电表读数 Form Table Where 抄表日期 = '2000.12.31 14:30:00'
Where 电表号=‘XXX’) B

From Dual

txlicenhe 2003-10-25
  • 打赏
  • 举报
回复
declare @rq1 datetime,@rq2 datetime

set @rq1 = '2003-10-01'
set @rq2 = '2003-10-31'

Select 编号,(Select 电表读数 from tableName where 抄表日期 = (Select max(抄表日期) from tableNmae where 抄表日期<= @rq2)) - (Select 电表读数 from tableName where 抄表日期 = (Select min(抄表日期) from tableNmae where 抄表日期>= @rq1))
from tableName
flfljh 2003-10-25
  • 打赏
  • 举报
回复
up

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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