编写SQL以获取表1中记录的最佳方法是什么,表1中的日期在表2中的2个列日期之间?
像
这样的东西SELECT INVOICE.* from INVOICE, CYCLE
Where
INVOICE.inv_date BETWEEN cycle.start_date and cycle.end_date
Cycle表只有一行,每晚都会更改。
INVOICE表有600万张发票可以追溯多年。
我正在寻找(a)运作良好,(b)效率高的东西。
答案 0 :(得分:0)
正如你所说,Cycle
表只有一行
您可以在变量中获取开始日期和结束日期并执行select
而不是加入cycle
表
declare @start_date datetime
declare @end_date datetime
select @start_date = start_date, @end_date = end_date FROM Cycle
-- select required columns instead of all
SELECT invoice.inv_date ..
FROM INVOICE
WHERE INOVICE.inv_date between @start_date and @end_date