SQL 2008中出现'Having trunc'子句的问题

时间:2013-07-15 16:11:06

标签: sql sql-server-2008

我有一个小的SQL查询,用于在Oracle DB中运行并获取一些结果。

现在这个查询工作得很好,但在SQL 2008中没有。,即SQL 2000返回的结果超过10k,而SQL 2008的结果为零。

当我进入深度时,我发现,最后一行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'' 
') 

1 个答案:

答案 0 :(得分:0)

HAVING CAST( MIN(processed_date) AS Date) BETWEEN '2005-09-01' AND '2005-10-01'