我有一个小型 SQL 查询,用于在 Oracle 数据库中运行并获取一些结果。
现在,此查询在 SQL 2000 中可以正常工作,但在 SQL 2008 中却不行。即,与 SQL 2008 的零结果相比,SQL 2000 返回的结果超过 10k。
当我深入研究时,我发现最后一行很HAVING trunc(MIN(processed_date)) Between ''01-Sep-2005'' And ''01-Oct-2005''
重要。如果我在两个版本中删除这一行,结果都是一样的。请建议此路障的替代方案,以便我在 2008 版中获得相同的结果。当我进入 2000 版时。
Select *
FROM OPENQUERY( ORAXYZ, '
SELECT DISTINCT(file_num),
to_char(MIN(Processed_date), ''YYYYMMDD'') Processed_date,
to_char(MIN(Report_Date), ''YYYYMMDD'') Report_Date,
file_stmt
FROM FILE_RECORDS
GROUP BY file_num, file_stmt
--processed_date value is truncated to date portion
HAVING trunc(MIN(processed_date)) Between ''01-Sep-2005'' And ''01-Oct-2005''
')