를 사용하여 데이터 업데이트를 논리에 도움이 필요하십니까 :내가 3 개 테이블이 저장 프로 시저
계정 (필드 사용 : ID의 VARCHAR (20)와 이름 varchar (50))
OpttyPartner (필드 사용했을 ID15의 VARCHAR (20)의 ACCOUNTTOID VARCHAR (20)
Final2 ([기회 ID] VARCHAR (20), 파트너 VARCHAR (400)
계정 테이블의 이름으로 final2에 대한 모든 레코드의 파트너 필드를 업데이트해야합니다. Final2는 계정이 ID와 ACCOUNTTOID와 OpptyPartner 관련된다 {기회 ID]와 ID15 으로 OpptyPartner 관련된
동일한 기회 ID에 대한 하나 이상의 accounttoid 그때 이름이 첨부 된 특허 및 '를 구분해야하는 경우; ' 예를 들어
:
Final2
ID Partner
1
OpptyPartner
ID15 ACCOUNTTOID
1 A1
1 A2
Accounts
ID Name
A1 ABC com
A2 EFG com
파트너의 출력은 'ABC 닷컴, EFG 닷컴'해야
을어떻게 달성 할 수 있는가? 커서?
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
@Prady : 테이블 디자인에서 볼 수있는 유일한 "ID"열은 계정 테이블에 있습니다. 내 대답을 수정하여 두 개의 열만 선택했습니다. –
@Radu 내가 사용중인 쿼리로 원래 질문을 업데이트했습니다. 데이터 정렬을 추가해야했습니다. – Prady