2016-03-09 134 views
-1

我有一個問題,試圖建立一個查詢,將做到以下幾點:SQL一對多查詢

  • 單親會有一些子記錄
  • 需要得到孩子記錄的狀態取決於返回的號碼。即3個狀態級別可用1,2 & 3.如果返回的所有子記錄都是1,那麼我們需要返回1.但是,如果有更多的2或3,則需要返回2或3。
  • 我們只需要看看最近一小時的數據

表結構表1

ID int 
parent_name nvarchar(255) 

表結構表2

ID int 
parent_id int 
status int 
dte datetime 
+1

你可以發佈示例數據嗎? –

+0

「但是,如果有更多的2或3,那麼我們需要返回2或3來代替」它是什麼?狀態值的計數是否重要?如果有兩個「2」和一個「3」和「1」,你的預期結果是什麼?最大狀態值還是最常出現的狀態值? – mindbdev

+0

由於@AndreFeijo的回答如下,我們再次審視了整個狀態問題,無論數量多少,我們都希望最高,因此他的回答正是我們所需要的。 – OPSL

回答

1

像這樣的事情? (我還沒有測試過)

SELECT MAX(c.status) FROM parent p 
INNER JOIN child c ON p.ID = c.parent_id 
WHERE c.dte > DATEADD(HOUR, -1, GETDATE()) 
+0

非常感謝,做到了這一點,甚至沒有想到以這種方式使用MAX()。 – OPSL