表2中2列之间的表1的SQL日期
问题描述:
对表1中的日期在表2中的2列日期之间编码SQL以获取表1中的记录的最佳方式是什么?表2中2列之间的表1的SQL日期
喜欢的东西
SELECT INVOICE.* from INVOICE, CYCLE
Where
INVOICE.inv_date BETWEEN cycle.start_date and cycle.end_date
周期表只有一个排,和改变夜间。
INVOICE表有600万张发票可以追溯多年。
我正在寻找(a)效果很好,(b)有效的东西。
答
正如你所说,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
啊加盟,我忘了提到一个细节。这是用于ETL应用程序的SQL,因此它只是直连SQL。没有声明,没有变量,没有多重选择语句。 “Source”SQL就是这样。那么鉴于此,在单个SQL语句中执行此操作的最佳方式是什么? – 2014-12-08 16:54:27