0

我有一个小型 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'' 
') 
4

1 回答 1

0
HAVING CAST( MIN(processed_date) AS Date) BETWEEN '2005-09-01' AND '2005-10-01'
于 2013-07-15T16:13:44.703 回答