我有2个表测试表和调查表。 测试表有
ChildID AddressID TestID TestValue TestDate
1 1 1 20 08/04/2017
2 2 2 20 09/04/2017
2 2 3 10 10/04/2017
当孩子的测试值> = 20时,系统会自动生成调查地址,但在15到19.9之间无法打开
调查表
ChildID InvestID AddressID Status
1 1 1 open
2 2 2 open
如果我得到一个新的儿童身份传入测试记录,这就是我的表格看起来
ChildID AddressID TestID TestValue TestDate
1 1 1 20 08/04/2017
1 5 4 16 12/04/2017(New record)
2 2 2 20 09/04/2017
2 2 3 10 10/04/2017
2 3 5 19 12/04/2017(New Record)
场景1 我想选择新记录并将'status'(新列)显示为'新地址'的情况,其中Test值介于15和19.9之间,测试日期相隔90天且地址id不等于两个测试。如果地址相同,请勿选择任何记录。 场景2 如果孩子的第二个测试值在15到19.9之间且具有相同的addess id
ChildID AddressID TestID TestValue TestDate
3 6 10 16 08/04/2017
3 6 20 18 11/04/2017 (New Record)
选择状态为“新案例和新地址”的新记录
场景3
ChildID AddressID TestID TestValue TestDate
3 6 10 16 08/04/2017
3 6 20 18 11/04/2017
3 7 21 17 02/04/2018 (New record)
将最新记录状态显示为“新地址”,因为它具有不同的地址。 到目前为止,我已经编写了查询,但我无法比较“状态列”的记录和写案例语句。我只能选择记录。
Select childid,Testid,TestDate,
TestValue,addressid,lc.caseType,
DateDiff(Day,lead(Test) OVER (Partition by Childid order by TestDate desc),Testdate) as Datediff,
DateDiff(day,First_Value(Testdate) Over (Partition by Childid order by b2.Testdateasc),Testdate) as Datedif1
from Test T
Left Join Investigation I
on T.child=I.childid
and b.observationValue between 15 and 19.99
and Datedif1>=90 or Datediff>=90