0
需要幫助在邏輯數據更新我有3個表:使用存儲過程
帳戶(使用的字段:ID VARCHAR(20)和名稱爲varchar(50))
OpttyPartner(字段使用:ID15 VARCHAR(20),ACCOUNTTOID VARCHAR(20)
Final2([機會ID] VARCHAR(20),合夥VARCHAR(400)
我需要更新每個記錄的最終合作伙伴字段,以及來自會計科目表的名稱。 Final2涉及OpptyPartner含{機會ID]和ID15 帳戶與具有ID和ACCOUNTTOID OpptyPartner相關
如果存在多於一個的accounttoid爲同一機會ID則名稱應附加並用「分隔; 「
例如:
Final2
ID Partner
1
OpptyPartner
ID15 ACCOUNTTOID
1 A1
1 A2
Accounts
ID Name
A1 ABC com
A2 EFG com
在合作伙伴的輸出應該是 'ABC COM; EFG COM'
如何才能實現這一目標?遊標?
UPDATE:
;With partners as
(select * from Accounts inner join OpptyPartner on
Accounts.ID COLLATE Latin1_General_CS_AS=OpptyPartner.[ACCOUNTTOID] COLLATE Latin1_General_CS_AS
inner join Final2 on Final2.[Opportunity ID] = OpptyPartner.ID15)
Update Final2 set Partner = p.Names from
Final2 inner join
(select [Opportunity ID] , LEFT(Names, len(Names)-1) as Names from
(SELECT j.[Opportunity ID] ,
(SELECT cast(p1.NAME as varchar(10)) + ';'
FROM partners p1
WHERE p1.[Opportunity ID] = j.[Opportunity ID]
ORDER BY NAME
FOR XML PATH('')) AS Names
FROM partners j
GROUP BY [Opportunity ID])A
) p on Final2.[Opportunity ID] = p.[Opportunity ID]
'ID'列被指定爲多個次'合作伙伴'。我得到這個錯誤 – Prady 2011-03-12 05:04:29
@Prady:在我的表格設計中看到的名爲唯一的「ID」列是在Accounts表上。我修改了我的答案,只選擇了幾列。 – 2011-03-12 05:09:23
@Radu我已更新原來的問題與我正在使用的查詢..我不得不添加排序規則 – Prady 2011-03-12 05:26:34