+ -
当前位置:首页 → 问答吧 → 在线求助

在线求助

时间:2011-11-07

来源:互联网

我有一个表以下数据是
日期 水度数 电度数
2011-1-30 30 50
2011-2-28 45 60
2011-3-30 50 70

我要得到以下数据
日期 上月水总度数 上月电总度数 本月水总度数 本月电总度数 本月用水度数 本用用 电度数
2011-2-28 30 50 45 60 45-30=5 60-50= 10
2011-3-30 50-45-5 70-60=10
 

作者: lsg2003_11   发布时间: 2011-11-07

航专列/

作者: bancxc   发布时间: 2011-11-07

SQL code
select
  b.日期,
  a.水度数 as 上月水总度数,
  a.电度数 as 上月电总度数,
  b.水度数 as 上月水总度数,
  b.电度数 as 上月电总度数,
  b.水度数-a.水度数 as 本月用水度数,
  b.电度数-a.电度数 as 本用用电度数
from
  tb a,tb b
where  
  datediff(mm,a.日期,b.日期)=1

 

作者: fredrickhu   发布时间: 2011-11-07

SQL code
create table tb(日期 datetime,水度数 int,电度数 int)
insert into tb select '2011-1-30',30,50
insert into tb select '2011-2-28',45,60
insert into tb select '2011-3-30',50,70
go
select b.日期,a.水度数 as 上月水总度数,a.电度数 as 上月电总度数,
b.水度数 as 本月水总度数,b.电度数 as 本月电总度数,
b.水度数-a.水度数 as 本月用水度数,b.电度数-a.电度数 as 本月用电度数
from tb a inner join tb b on datediff(mm,a.日期,b.日期)=1
/*
日期                      上月水总度数      上月电总度数      本月水总度数      本月电总度数      本月用水度数      本月用电度数
----------------------- ----------- ----------- ----------- ----------- ----------- -----------
2011-02-28 00:00:00.000 30          50          45          60          15          10
2011-03-30 00:00:00.000 45          60          50          70          5           10

(2 行受影响)

*/
go
drop table tb


作者: qianjin036a   发布时间: 2011-11-07

航专列

作者: iymmgd   发布时间: 2011-11-07

SQL code
--> --> (Roy)生成測試數據
 
if not object_id('Tempdb..#T') is null
    drop table #T
Go
Create table #T([日期] Datetime,[水度数] int,[电度数] int)
Insert #T
select '2011-1-30',30,50 union all
select '2011-2-28',45,60 union all
select '2011-3-30',50,70
Go
Select 
    日期=a.日期,
 上月水总度数=b.[水度数],
 上月电总度数=b.[电度数],
  本月水总度数=a.[水度数],
  本月电总度数=A.[电度数], 
  本月用水度数=a.[水度数]-ISNULL(b.[水度数],0),
  本月用电度数=a.[电度数]-isnull(b.[电度数],0)
from #T as a
    left join #T as b on MONTH(a.[日期])=MONTH(b.[日期])+1
where a.[日期]>='20110201'

-->

/*
日期    上月水总度数    上月电总度数    本月水总度数    本月电总度数    本月用水度数    本月用电度数
2011-02-28 00:00:00.000    30    50    45    60    15    10
2011-03-30 00:00:00.000    45    60    50    70    5    10
*/

作者: roy_88   发布时间: 2011-11-07

datediff(mm,a.日期,b.日期)=1
这个语句是什么意思?

作者: wfkmu   发布时间: 2011-11-07