Требуется объединить клиентов в одну табличку. При этом если в таблице сопоставления есть правило замены старого клиента на нового, то заменить, если нет, то загрузить клиентов из таблиц.
Например, есть три таблички:
Клиент новый
- Клиент Н1
- Клиент Н2
2) Клиент старый
- Клиент С1
- Клиент С2
3) |Сопоставление|
- Клиент Н1 | Клиент С1 (т.е. С1 заменяем на Н1)
Какими лопатами-граблями можно добиться, следующей таблички:
Н1
Н2
С2
Спасибо!
Доброго времени суток :)
Вот как вариант, идея такая:
В таблице старых клиентов ставим метку для тех, которые уже есть в новых клиентах, через таблицу сопоставления.
Затем отсекаем по проставленной метке тех кто имеет сопоставления и грузим тех, кто таких записей не имеет.
Код примера несложный, копируем и запускаем:
// Пример скрипта для форума Qlikview & Qlik SENSE
ClientNew:
LOAD * INLINE [
%IDN, NewClient
n1, Клиент A
n2, Клиент B
n3, Клиент C
n4, Клиент D
];
ClientOld:
LOAD * INLINE [
%IDN, %IDO
n3, o2
n1, o4
];
right Join LOAD * INLINE [
%IDO, OldClient
o1, Клиент Ф
o2, Клиент Ц
o3, Клиент Л
o4, Клиент А
];
STORE * from ClientOld into ClientOld.qvd(qvd);
drop Table ClientOld;
LOAD %IDO as [%IDN], OldClient as [NewClient]
FROM [ClientOld.qvd](qvd)
WHERE(IsNull(%IDN));
Спасибо! Попробую!