2013-04-22 71 views
0

希望有人可以幫助我解決這個問題。我試圖通過ODBC/ms查詢來提取即將推出的標題列表(我在發佈中工作)。我希望(除其他外)顯示其內部狀態(批准,印前等)。數據庫存儲狀態的更改日期'。我似乎每個標題的每個狀態都有一行。所以如果標題6次改變狀態,我會得到6行。但我只想顯示最新狀態...需要只存儲表中存儲更改日期的最後日期SQL/ODBC

日期在BL_PROJECT_TO_STATUS.STATUS_DATE(我在下面插入了一個日期標準,只是爲了使其更加明顯)。

如何才能做到這一點?我對ODBC很陌生,會很感激。

SELECT DISTINCT 
    BL_PROJECT.EXP_PUB_DATE, BL_PROJECT.EAN, BL_PROJECT.TITEL, 
    MEDIATYPE.DESCRIPTION, BL_PROJECT_STATUS.DESCRIPTION 
FROM 
    FIRMA1.BL_PROJECT BL_PROJECT, FIRMA1.BL_PROJECT_STATUS BL_PROJECT_STATUS, 
    FIRMA1.BL_PROJECT_TO_STATUS BL_PROJECT_TO_STATUS, FIRMA1.MEDIATYPE MEDIATYPE 
WHERE 
    BL_PROJECT.PROJECT_ID = BL_PROJECT_TO_STATUS.PROJECT_ID AND 
    BL_PROJECT_TO_STATUS.STATUS_ID = BL_PROJECT_STATUS.CODE AND 
    BL_PROJECT.MEDIATYPE = MEDIATYPE.ID AND 
    ((BL_PROJECT.PROJECT_TYPE = 2) AND 
    (BL_PROJECT.EXP_PUB_DATE Between SYSDATE AND (SYSDATE+90)) AND 
    (BL_PROJECT_TO_STATUS.STATUS_DATE = {ts '2013-11-20 00:00:00'})) 
ORDER BY 
    BL_PROJECT.EXP_PUB_DATE, BL_PROJECT.EAN, BL_PROJECT.TITEL 

回答

0

這是一般的想法。你可以調整它與你的表和字段名稱。

select somefields 
from sometables 
join 
(select something, max(datetimefield) maxdt 
from table1 
where whatever 
group by something) temp on table1.datetimefield = maxdt 
etc