我收到的错误表明#Plans含糊不清。这种情况发生在我自己加入一张桌子时,我不知道为什么。以下是导致错误的代码:
Alter Table #Plans
Add SecondPlanDate date
Update #Plans
Set
SecondPlanDate = Min (P2.PlanPurchaseDate) Over (Partition By P1.PatientID, P1.PlanPurchaseDate)
From
#Plans as P1
Inner Join
#Plans as P2
on
P1.PatientID = P2.PatientID
Where
P2.PlanPurchaseDate > P1.PlanPurchaseDate
;
Select
*
From
#Plans
任何建议都将不胜感激。
谢谢,
答案 0 :(得分:3)
答案 1 :(得分:1)
将查询修改为
Update P1
Set
P1.SecondPlanDate = Min (P2.PlanPurchaseDate) Over (Partition By P1.PatientID, P1.PlanPurchaseDate)
From
#Plans as P1
答案 2 :(得分:0)
试试这个:
UPDATE #Plans
SET SecondPlanDate = P2.FirstPlanPurchaseDate
FROM #Plans P1
INNER JOIN ( SELECT PatientID,
MIN(PlanPurchaseDate) AS FirstPlanPurchaseDate
FROM #Plans
GROUP BY PatientID) P2
ON P1.PatientID = P2.PatientID
答案 3 :(得分:0)
Update #Plans
Set
SecondPlanDate = <your value>
From
#Plans , #Plans P2
Where
#Plans.PatientID = P2.PatientID
and P2.PlanPurchaseDate > #Plans.PlanPurchaseDate
//ie the solution is to reference the update table in the join as well