0

Oracle DBで実行するために使用され、結果を取得する小さなSQLクエリがあります。

現在、このクエリは SQL 2000 では正常に機能しますが、SQL 2008 では機能しません。つまり、SQL 2008 のゼロ結果と比較して、SQL 2000 は 10,000 を超える結果を返します。

私が見つけた詳細に行ったとき、最後の行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 に答える