Sql server 2012 SQL Server 2012中自联接的替换
我在下表中有一个场景: 采样数据:(具有一个产品的一小时周期值。)Sql server 2012 SQL Server 2012中自联接的替换,sql-server-2012,self-join,Sql Server 2012,Self Join,我在下表中有一个场景: 采样数据:(具有一个产品的一小时周期值。) LastRunDate是用户到达的最后一个DB时间。因此,我需要一个类似于和预期结果的查询: TST_DATE CLK_LITRE_WT_Real CLK_LITRE_WT_Seen ----------------------------------------------------------- 09/15/2019 17:15 1280 1190
LastRunDate
是用户到达的最后一个DB时间。因此,我需要一个类似于和预期结果的查询:
TST_DATE CLK_LITRE_WT_Real CLK_LITRE_WT_Seen
-----------------------------------------------------------
09/15/2019 17:15 1280 1190 <-- value of previous live record.
09/15/2019 16:15 1300 1190 <-- value of previous live record.
09/15/2019 15:15 1190 1190 <-- Last seen record by User.
09/15/2019 14:15 1200 1200
09/15/2019 13:15 1200 1200
昨天这里的日期和时间是静态的。因为,给定的数据是昨天的数据。结果是:
TST_DATE CLK_LITRE_WT_Real CLK_LITRE_WT_Seen
09/15/2019 17:15 1280 1300
09/15/2019 16:15 1300 1190 <-- value of previous live record
09/15/2019 15:15 1190 1200 <-- here should be '1190' as Real
09/15/2019 14:15 1200 NULL
TST\U日期CLK\U升重量实际CLK\U升重量
09/15/2019 17:15 1280 1300
2019年9月15日16:15 1300 1190将很快共享查询
。。。实际上,您现在应该共享查询,如果没有查询,您的问题就不会真正完成。我的文件意外关闭。所以我需要重写它。同时,如果我分享我的请求,我会得到一些解决方案@TimBiegeleisen,我补充了我的问题。请在代码问题中给出一个--cut&paste&runnable代码;示例输入(作为初始化代码)以及所需和实际输出(包括逐字错误消息);标签和版本;清晰的说明和解释。这包括您能给出的最少代码,即您显示为OK的代码,由您显示为not OK的代码扩展。(调试基础。)对于包含DBMS/product和DDL的SQL,其中包括约束和索引以及表格格式的基表initialization@philipxy我不明白你想说什么。。。!!
TST_DATE CLK_LITRE_WT_Real CLK_LITRE_WT_Seen
-----------------------------------------------------------
09/15/2019 17:15 1280 1190 <-- value of previous live record.
09/15/2019 16:15 1300 1190 <-- value of previous live record.
09/15/2019 15:15 1190 1190 <-- Last seen record by User.
09/15/2019 14:15 1200 1200
09/15/2019 13:15 1200 1200
select TST_DATE, CLK_LITRE_WT CLK_LITRE_WT_Real, lead (CLK_LITRE_WT) over (order by convert(datetime,sd.TST_DATE + ':15.00') desc) CLK_LITRE_WT_Seen
from SettingMaster sm left join SampleData sd
on convert(datetime,sd.TST_DATE + ':15.00') between dateadd (hour, -(4), '2019-09-15 17:20:02.733') and '2019-09-15 17:20:02.733'
where sm.UserCode = 'aa'
order by convert(datetime,sd.TST_DATE + ':15.00') desc
TST_DATE CLK_LITRE_WT_Real CLK_LITRE_WT_Seen
09/15/2019 17:15 1280 1300
09/15/2019 16:15 1300 1190 <-- value of previous live record
09/15/2019 15:15 1190 1200 <-- here should be '1190' as Real
09/15/2019 14:15 1200 NULL