我需要简化代码或减少连接,因为执行所需的时间太长。
FROM table2
JOIN
table1 ON table1.column1 = table2.column1
AND table2.column2 IN ('classic')
JOIN table3 ON table1.column3= table3.column3
LEFT JOIN
(SELECT * FROM table4 WHERE Date>DATEADD(dd, -14, GETDATE()))
ON table2.column4 =table4.column4
AND table4.Date > table2.Time
AND table4.NextDate<= ISNULL(some condition)))
AND table3.column5= table4.column5
WHERE table2.Date > DATEADD(dd, -14, GETDATE()) as a
感谢您的任何帮助
使用`CTE并分割和过滤数据集,然后进行联接,并在可能的情况下索引联接列。
with table2cte as
(
select <collist>
from table2
where table2.column2 IN ('classic') and colDate > DATEADD(dd, -14, GETDATE()
)