Вот моя ситуация, у меня есть таблица с именем Monthly_Hierarchy следующим образом:
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 записей. Я просто хочу сделать все места для одного и того же location_id с одинаковым типом franchise_type, одинаковыми.
Итак, после модификации моя таблица в идеале должна выглядеть так:
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 должны быть 1101, если франшиза - «F», и 1102, если франшиза - 1102. У меня есть 2 отдельные таблицы с местами и местоположениями для всех франшиз F и одинаковыми для всех франшиз 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'
Я просто не могу понять, как перейти от моей исходной таблицы к финальной таблице с моим текущим кодом. То, что я продолжаю получать, это увеличенные места для франшиз F для того же идентификатора местоположения следующим образом:
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
Как мне это исправить и сделать так, чтобы они были одинаковыми?