下午好,
我在我的SQL数据库中有2个表,第一个是我对一个人的天数,以及其他人每天的注册表,我想知道这个人是否有每个人的注册表进入规范范围的一天。
我遇到过一个查询,它使用CTE以独立的天数返回范围,而其他查询则按人和日的方式查看注册表组,但我无法跨越这些查询。
底部有一张包含查询和每个结果的图片。
感谢。
答案 0 :(得分:0)
您可以在一个语句中使用多个CTE,因此您可以将每个查询放在单独的CTE中并在以后加入它们:
SELECT
p.cedula, p.starttime,
r.Descr, r.Candidad
FROM ctePeriod p
LEFT JOIN cteRegistry r on r.cedula = p.cedula AND r.Dia = p.StartTime
ORDER BY p.cedula, p.starttime
以上作为单个查询。
另一种方法是将Query1和Query2的结果放入临时表,并在那些临时表上构建最终查询,例如:
SELECT DISTINCT ...
INTO #Period
FROM CTE
WHERE ...
SELECT ...
INTO #Registro
FROM Registro
GROUP BY ...
SELECT
p.cedula, p.starttime,
r.Descr, r.Candidad
FROM #Period p
LEFT JOIN #Registro r on r.cedula = p.cedula AND r.Dia = p.StartTime
ORDER BY p.cedula, p.starttime