您的位置:首页 > 数据库

sql相邻两条记录差值计算 初稿

2014-10-23 17:43 323 查看
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[query_all_steamdata]
@userCode varchar(255),
@startTime datetime,
@endTime datetime
as
select
(dbo.UsersInfo.User_name + '(' + c.User_code + ')') AS [UserName],
CONVERT(CHAR(19), c.Check_time, 20) as strCreateTime,
CONVERT(CHAR(19), c.Check_time, 20) as strCheckTime,
CAST(Avg(c.Temp_value) / 100.0 AS decimal(9, 2)) AS [Temp],
CAST(Avg(c.Press_value) / 100.0 AS decimal(9, 2)) AS [Press],  CAST(Avg(c.freq_value) / 1000.0 AS decimal(9, 3)) AS [Freq],
CAST(Avg(c.dP_value) / 1000.0 AS decimal(9, 3)) AS [dP],  CAST(Avg(c.Quantity_value) / 1000.0 AS decimal(9, 3)) AS [Quantity],
CAST(Max(c.TQuantity_value) / 100.0 AS decimal(11, 0))AS [TQuantity],

CAST((Max(c.TQuantity_value)-
(select top 1 a.TQuantity_value
FROM
UseSteamAllData as a
, UsersInfo as b
WHERE (a.User_code = b.User_code)
AND (a.User_code = c.User_code)
and  (a.check_time<c.check_time)
AND ((a.Check_time >= @startTime) AND (a.Check_time <=@endTime)) order by a.check_time desc
))/100.0

AS decimal(9, 2)

)AS [UQ]

from UseSteamAllData  c,
UsersInfo
where
c.User_code = UsersInfo.User_code
AND
c.User_code=@userCode
AND
c.Check_time >=@startTime
AND
c.Check_time <=@endTime
GROUP BY c.User_code, dbo.UsersInfo.User_name,c.Check_time
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: