我正在嘗試使用並學習Partition By以返回一對多關係的最大步數。 基本上,我有一個companyID,這是公司表中唯一的。該公司有一些步驟,但StepCompany表中可能有很多步驟。 companID存在於stepCompany表中該公司可能存在的每個步驟。這些步驟有StepOrder,這是我需要用來總是返回MAX的那些。但是我需要一個查詢來從公司和stepCompany返回兩個信息,這些信息基於哪個步驟基本上是該公司隊列中的最後一步。 來源我發現我要麼不明白,因爲我是新來的分區,或者他們給別人分區,並在外部選擇結束時,他們確實喜歡別名= 1例如。
這是查詢返回,沒有任何分區或任何東西。使用Partition By從Join SQL返回MAX記錄
CompanyIDticketID|||| companyCompanyID||| stepCompanyCompanyID|||| stepCompanyStepOrder
----------------- ---------------- -------------------- --------------------
136211 |||| 10B7E005 ||| 10B7E005 ||| 1
136211 |||| 10B7E005 ||| 10B7E005 ||| 2
136211 |||| 10B7E005 ||| 10B7E005 ||| 3
155585 |||| 3A2078C5 ||| 3A2078C5 ||| 1
155585 |||| 3A2078C5 ||| 3A2078C5 ||| 2
193256 |||| 95AC74FB ||| 95AC74FB ||| 1
193256 |||| 95AC74FB ||| 95AC74FB ||| 2
210425 |||| 0BAD0261 ||| 0BAD0261 ||| 1
210425 |||| 0BAD0261 ||| 0BAD0261 ||| 2
對不起,格式不好,不知道如何在這裏整潔地創建一個表。
所以這些是2表正在加入。 companyCompanyID = stepCompanyCompanyID用於加入它們。因此,對於companyID 136211,我需要stepCompanyStepOrder 3來顯式返回stepCompany表中的數據。對於companyIDticketID 155585我需要stepCompanyStepOrder 2等。 我寧可不提供我的SQL,因爲它不是很漂亮:)
我很感謝大家的幫助!
感謝,
sweeeeeeeeeeeeeet!我認爲我在其他資料中發現的那個= 1,就是這樣...我只是不理解這個概念..很簡單...很感謝JW! – 2013-04-09 15:19:52
不客氣':D' – 2013-04-09 15:20:34
刪除'WHERE rn = 1'並查看'RN'列中發生了什麼:D' – 2013-04-09 15:28:28