2014-01-15 27 views
0

我已經創建了一個包含股票,類別,開始日期和結束日期的SQL表。我需要找到大於3天的最大日期和最短日期之間的日期差異。下面是我的編碼:sql檢索結果的日期之間超過設置的日期值

SELECT stock, category, MIN(start_date) || '..' || MAX(start_date) AS date_range, 
    Trunc(MAX(actual_run_date) - MIN(actual_run_date)) AS days_between 
FROM schedule 
left outer join astock 
ON schedule.stock= astock.stock 
WHERE (STATUS ='COMPLETED' OR STATUS IS NULL) 
AND START_DATE>SYSDATE-15 
GROUP BY stock,category 

我應該如何修改我的編碼,這樣的結果days_between顯示出只有結果其中超過3?

回答

0

您正在查找HAVING子句,它與where類似,但分組後。

SELECT stock, category, MIN(start_date) || '..' || MAX(start_date) AS date_range, 
    Trunc(MAX(actual_run_date) - MIN(actual_run_date)) AS days_between 
FROM schedule 
left outer join astock 
ON schedule.stock= astock.stock 
WHERE (STATUS ='COMPLETED' OR STATUS IS NULL) 
AND START_DATE>SYSDATE-15 
GROUP BY stock,category 
HAVING Trunc(MAX(actual_run_date) - MIN(actual_run_date)) > 3 

一些數據庫引擎會明白

HAVING days_between > 3 

但據我所知,不是所有的人。

+0

謝謝,它解決了〜 – user3128278

相關問題