이것은 나에게 큰 문제이며이 문제를 논의하기에는 너무 단순한 것처럼 보이지만 과장 될 수 있습니다. 그것은 SQL에 있습니다.동일한 테이블의 다른 필드 값을 기반으로 필드 업데이트
SITENUM LOCATION_ID FRANCHISE
1101 5522005 R
1101 5522005 F
1102 5522005 R
1102 5522005 F
1103 5522006 R
1103 5522006 F
1104 5522006 R
1104 5522006 F
이 같은이 테이블에 대한 3204 항목이 있습니다 : 여기
다음과 같이 내가 Monthly_Hierarchy라는 테이블을 가지고, 내 상황입니다. 내가 간단하게하고자하는 것은 동일 franchise_type을 갖는 동일한 location_id에 대한 모든 sitenum을 동일하게 만드는 것입니다.그래서, 수정 후, 내 표는 이상적으로 다음과 같아야합니다.에 대한 전
SITENUM LOCATION_ID FRANCHISE
1101 5522005 R
1102 5522005 F
1101 5522005 R
1102 5522005 F
1103 5522006 R
1104 5522006 F
1103 5522006 R
1104 5522006 F
따라서는, 5522005에 대한 모든 sitenums 1101해야 프랜차이즈가 'F'이고 1102 경우 프랜차이즈가 1102 인 경우 나는 모든 F 프랜차이즈의 위치 및 위치와 2 개의 별개의 테이블을 보유하고 있으며 모든 R 프랜차이즈에도 동일하게 적용됩니다. 현재 내 코드는 다음과 같습니다 : 난 그냥 내 현재 코드로 최종 테이블에 내 원래 테이블에서 가져 오는 방법을 알아낼 수 없습니다
BEGIN TRANSACTION
DECLARE @NewSiteNum int
SELECT @NewSiteNum = MAX(SiteNum)+1 FROM [Monthly Hierarchy Table]
UPDATE Monthly_Hierarchy
SET SITENUM = SELECT @NewSiteNum,
@NewSiteNum = @NewSiteNum + 1
FROM Monthly_Hierarchy m
JOIN F_hierarchy f
on m.location_id = f.location_id
where m.franchise='f'
END
UPDATE Monthly_Hierarchy
SET SITENUM = R.sitenum
FROM Monthly_Hierarchy m
JOIN R_hierarchy r
on m.location_id = r.location_id
where m.franchise='R'
.
SITENUM LOCATION_ID FRANCHISE
1101 5522005 R
1106 5522005 F
1101 5522005 R
1107 5522005 F
1103 5522006 R
1108 5522006 F
1103 5522006 R
1109 5522006 F
어떻게이 문제를 해결하고 모든 균일하게받을 수 있나요 다음과 같이 내가 뭘 계속 같은 위치 ID에 대한 F 프랜차이즈에 대한 sitenums을 증가하기? 어떤 도움이라도 대단히 감사하겠습니다.
그것이이 테이블의 구조이기 때문에 증가해야합니다. 이 테이블에 삽입 된 새로운 항목은 테이블의 최대 (sitenum)부터 시작하여 자동으로 1 씩 증가하는 sitenum을가집니다. 내가 끝내 었다고 생각하기 전에 나의 코드는 매력처럼 작동했지만, 나는 sitenum = sitenum + 1000을 만들고 있었고 겹치는 부분이 없었다. 이제는 sitenum을 현재 사용중인 것으로 업데이트하는 것을 막기 위해 1 씩 증가합니다. max (sitenum)로 시작해야합니다. 문제는 location_id가 변경 될 때 sitenum 만 증분시켜야하므로 location_id를 자체에 가입시켜야 할 수도 있습니다. – Sonal