这是我的查询
UPDATE [P1_Log_FY14H1_CE]
SET [P1_Log_FY14H1_CE].toplevelAccredCode = #PartnerLookupfinalForCode.Accreditation_Code
FROM dbo.[P1_Log_FY14H1_CE]
INNER JOIN #PartnerLookupfinalForCode
ON [P1_Log_FY14H1_CE].[Partner ID] = #PartnerLookupfinalforCode.Partner_ID
WHERE [P1_Log_FY14H1_CE].Intake_Date is not null and #PartnerLookupfinalforCode.[Rank]=(Select Min(Rank) from #PartnerLookupfinalforCode)
此处更新Toplevelaccredcode
我得到的结果是这样的
[Partner ID] Code Rank
A silver 3
A LessSilver 4
此处在日志表中,合作伙伴A具有唯一记录。我希望在日志表中更新最高版本。 与合作伙伴一样,白银应该更新。 任何人都可以更正我的查询吗?
答案 0 :(得分:0)
试试这个:
WITH c AS (
SELECT Partner_ID
, Accreditation_Code
, RANK() OVER(PARTITION BY Partner_ID ORDER BY [Rank]) [min_rank]
FROM #PartnerLookupfinalForCode)
UPDATE [P1_Log_FY14H1_CE]
SET [P1_Log_FY14H1_CE].toplevelAccredCode = c.Accreditation_Code
FROM dbo.[P1_Log_FY14H1_CE]
INNER JOIN c ON [P1_Log_FY14H1_CE].[Partner ID] = c.Partner_ID
AND c.min_rank = 1
WHERE [P1_Log_FY14H1_CE].Intake_Date is not null
答案 1 :(得分:0)
试试这个
UPDATE [P1_Log_FY14H1_CE]
SET [P1_Log_FY14H1_CE].toplevelAccredCode = #PartnerLookupfinalForCode.Accreditation_Code
FROM dbo.[P1_Log_FY14H1_CE]
INNER JOIN #PartnerLookupfinalForCode
ON [P1_Log_FY14H1_CE].[Partner ID] = #PartnerLookupfinalforCode.Partner_ID
INNER JOIN (Select Partner_ID,Code,Min(Rank) from #PartnerLookupfinalforCode Group By Partner_ID,Code) MINPartner
ON MINPartner.Partner_ID =#PartnerLookupfinalforCode.Partner_ID AND MINPartner.Code=#PartnerLookupfinalforCode.Code
WHERE [P1_Log_FY14H1_CE].Intake_Date is not null