2017-05-02 39 views
0

我已經看到了我的解決特定的問題類似的問題,但沒有頂1:SQL兩個不相關的表

我有有一個數字日期(例如201704030000)列兩個不相關的表。作爲一個結果,我期望從任一表中提取最早的日期。

所以基本上我需要兩個Top(1)子查詢的最低結果,其中兩個都是按日期排序的ASC。

謝謝!

回答

0

這就是你說的你想要的。它從兩個聯合編輯的頂級1查詢中獲得前1名。

select top 1 dt 
from (
    select top 1 TicketDate as dt 
    from t1 
    order by dt asc 
    union all 
    select top 1 TimesheetDate as dt 
    from t2 
    order by dt asc 
) u 
order by dt asc 
+0

感謝這幾乎正是我所需要的,我應該提到,儘管日期列有不同的名稱(例如TicketDate,TimesheetDate),有沒有辦法給它們別名? – simon2015

+0

您可以簡單地將別名添加到字段名稱的末尾。示例:SELECT TOP 1 TicketDate AS myDate FROM .... UNION SELECT TOP 1 TimesheetDate AS myDate FROM .... – Paurian

+0

@ simon2015在派生表中添加了別名。 – SqlZim

0

就我個人而言,我會用SqlZim的代碼中的min()替換top 1。使代碼更短,更易讀 - 但應該沒有性能差異。