我有两个如下表 儿童出勤 childid在今天更新 1 31/01/2018 20 1 28/02/2018 15 1 31/03/2018 18 1 30/04/2018 24 1 31/05/2018 17 1 30/06/2018 19 2 31/03/2018 25 2 30/04/2018 28 2 31/05/2018 22 2 30/06/2018 23
第二个表为
儿童班入学日期 1托儿所15/06/2017 1 balwari 2018年1月2日 2个托儿所01/01/2017 2 balwari 2018年1月1日 2桥课程01/04/2018
现在,我需要一个查询以返回childid,updatedon,presentdays,class。
我是sql的新手,不知道该怎么做。 我尝试过
SELECT t1.childid,t1.updatedon,t1.presentdays,t2.class
FROM child_attendance t1 LEFT JOIN class_allocation t2
ON t1.childid = t2.childid
AND t1.updatedon >= t2.admissiondate
我的输出应该是这样
您可以看到孩子1于2017年6月15日在托儿所入院,巴尔瓦里于2018年2月1日入院。这意味着他从2018年6月15日到2018年2月1日都是托儿所。
答案 0 :(得分:0)
我认为此查询可以得到您想要的:
SELECT t1.childid, t1.updatedon, t1.presentdays,
class=(SELECT TOP (1) class
FROM Class_Allocation
WHERE childid=t1.childid
AND t1.updatedon>=admissiondate
ORDER BY admissiondate DESC)
FROM Child_Attendance t1