我有2个表我正在使用内部联接来使用相关数据。
SELECT Provider_Administration.OCODE
, Provider_Administration.PIDNumber
, Provider_Administration.PID
, Provider_Location.ID
, Provider_Location.ID
, Provider_Location.A1
, Provider_Location.PArea
, Provider_Location.PEx
, Provider_Location.P4
FROM Provider_Administration
INNER
JOIN Provider_Location
ON Provider_Administration.PID=Provider_Location.PID
WHERE Provider_Location.IsInactiveFLAG<>'Y'
AND PIDNumber = '00127'
以下是结果..
ROW OCODE PIDNumber PID ID PID_1 A1 PArea Pex P4
--- ---------- --------- ------ ---- ------ ----------- ----- --- ----
1 Enterprise 00127 3 6 37 2405 W MISS 555 555 1061
2 DIA 00127 706180 6800 706180 NA FOUND 0 0 0
3 MMM 00127 706181 6801 706181 NA FOUND 0 0 0
4 AWI 00127 706182 6802 706182 NA FOUND 0 0 0
5 WC 00127 706183 6803 706183 NA FOUND 0 0 0
我需要的是根据'Enterprise'的OCODE从ROW 1复制A1,PArea,Pex,P4,并且更新所有与PIDNumber匹配的行。正如您所看到的,这些值都在Provider_Location表中,所以我只是在单个表中更新信息,但为了找到匹配的critirea,我必须做一个innerjoin来从Provider_Administration表中获取PIDNumber。
一旦我使UPDATE脚本工作,我想知道如何在PArea中搜索0,然后使用相同的脚本获取PIDNumber并运行UPDATE,除非它会在WHERE语句中动态插入PIDNumber ?
这是UPDATE的理想结果。
ROW OCODE PIDNumber PID ID PID_1 A1 PArea Pex P4
--- ---------- --------- ------ ---- ------ ----------- ----- --- ----
1 Enterprise 00127 3 6 37 2405 W MISS 555 555 1061
2 DIA 00127 706180 6800 706180 2405 W MISS 555 555 1061
3 MMM 00127 706181 6801 706181 2405 W MISS 555 555 1061
4 AWI 00127 706182 6802 706182 2405 W MISS 555 555 1061
5 WC 00127 706183 6803 706183 2405 W MISS 555 555 1061
6 Enterprise 00128 706184 6804 706184 1123 N PALM 555 444 3232
7 DIA 00128 706185 6805 706185 1123 N PALM 555 444 3232
8 MMM 00128 706186 6806 706186 1123 N PALM 555 444 3232
9 AWI 00128 706187 6807 706187 1123 N PALM 555 444 3232
10 WC 00128 706188 6808 706188 1123 N PALM 555 444 3232
好的,我能够创建UPDATE SCRIPT ......这是真正的脚本。现在我想找出如何替换ProviderIDNumber的增量数,以便创建一个基于2个变量启动和停止的循环。我根据ProviderIDNumber = x设置开始和停止,然后在所有更新语句x = x + 1的末尾然后返回到开始位置,现在而不是ProviderIDNumber = 23,它是24。
UPDATE Provider_Location SET Provider_Location.FaxPhoneLast4 = (SELECT TOP 1 Provider_Location.FaxPhoneLast4 FROM Provider_Location INNER JOIN Provider_Administration ON Provider_Administration.ProviderID=Provider_Location.ProviderID WHERE ProviderIDNumber = '00127' AND Provider_Administration.OrganizationCODE = 'Enterprise' ORDER BY Provider_Administration.OrganizationCODE ASC) FROM Provider_Location INNER JOIN Provider_Administration ON Provider_Administration.ProviderID=Provider_Location.ProviderID WHERE Provider_Administration.ProviderIDNumber = '00127'