Объединить и обновить столбцы - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь перестроить некоторую логику запроса на обновление MS Access с помощью функции слияния R, поскольку в логике запроса на обновление отсутствует несколько аргументов.

Ссылка на таблицу Google drive В моей базе данных "Распределение счета-фактуры" есть 2 таблицы:

Account_Mapping Table:

Origin  Origin Postal Destination   Destination      Invoice
country code          country       postal code      Account
FRA       01           GBR            *               ZR001
FRA       02           BEL            *               ZR003
BEL       50           ARG            *               ZR002
GER       01           ITA            *               ZR002
POL       02           ESP            *               ZR001
ESP       50           NED            *               ZR003
*         95           FRA           38               ZR001
BEL        *            *             *               ZR002
*          *            *             *               ZR003
FRA        *          FRA            25               ZR004

Load_ID

 ID            Origin   Postal  Destination  Destination    Default 
               country   code                postal code    Invoice Account
2019SN0201948   FRA       98    FRA             38           XXAC001
2019SN0201958   POL       56    GBR             15           XXAC001
2019SN0201974   BEL       50    ARG             27           XXAC001
2019SN0201986   FRA       02    GER             01           XXAC001

учетная запись счета по умолчанию в таблицах (Load_ID и Status_ID) обновляется учетной записью счета из таблицы Account_Mapping.

К таблицам Account_Mapping и Load_ID могут быть присоединены: Страна происхождения и Страна происхождения, Почтовый индекс и Почтовый индекс происхождения,Страна назначения и пункт назначения, а также почтовый индекс назначения и почтовый код назначения.

В таблице account_mapping есть несколько «*», это означает, что строковое значение может принимать любое значение.Я не могу построить эту логику с помощью функции слияния.Пожалуйста, помогите мне с лучшей логикой.

New_Assigned_Account_Final <- merge(Load_ID, Account_Mapping, by.x = 
c("Origin country","Postal code","Destination", "Destination postal code"), 
by.y = 
c("Origin country","Origin Postal code","Destination country", "Destination 
postal code"))

Желаемый результат:

Обновлена ​​таблица Load_ID, как показано ниже.

Load_ID:

    ID        Origin    Postal  Destination  Destination    Default 
               country   code                postal code    Invoice Account
2019SN0201948   FRA       98    FRA             38             ZR003
2019SN0201958   POL       56    GBR             15             ZR003
2019SN0201974   BEL       50    ARG             27             ZR002
2019SN0201986   FRA       02    GER             01             ZR003

Для первогоID, идентификатором по умолчанию становится « ZR003 », потому что «FRA» в качестве страны происхождения не имеет почтового кода - «98», поэтому он попадает в область «*» и выделяется для ZR003 .

Для третьего идентификатора идентификатором по умолчанию становится « ZR002 », поскольку «BEL» в качестве страны происхождения имеет почтовый код - «50», связанный с ними почтовый индекс получателя «ARG» может быть любым из-за «*» в столбце почтового кода получателя, поэтому он назначен на ZR002 .

Спасибо за ваш ввод,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...