2011-11-17 126 views
0

我有兩個表,程序和事件。我想要做的是獲得每個節目最近的即將到來的事件。然而,有可能一個程序可能沒有附加任何事件或者只發生在過去的事件,但我仍然需要程序在事件日期中顯示一個空值,而不是離開。所以我開始實施一個外部聯接的基礎上我google了,發現外部適用。頂部1查詢SQL外部連接

問題似乎是我有任何事件列進不去,歌廳錯誤'Invalid column name 'start_date'.'(出現這種情況與所有三列,而不只是開始日期)

,所以我要麼需要了解爲什麼如果什麼都不存在

SELECT 
    p.*, 
    e.type, 
    e.start_date, 
    e.end_date 
FROM 
    program p 
    outer apply (
     select top(1) pk_id from events e where fk_program_id = p.pk_id and end_date >= GetDate() 
    ) e 

回答

0

你,我無法訪問這些列,或找出一種新的方式去寫返回所有項目的查詢,以及加入了最近事件的事件表/離開值空」除了事件中的pk_id之外,不要返回任何列。將其他列添加到您的select語句。 :-)

SELECT TOP(1) p.pk_id, 
       TYPE, 
       start_date, 
       end_date 
FROM events e 
WHERE fk_program_id = p.pk_id 
     AND end_date >= Getdate() 
+0

哦咄。男人,有時它總是小東西​​。我保留了以前的迭代中的查詢,之前我意識到我需要外連接。謝謝,我會盡快接受答案。 – Josh