Я пришел в конце проекта и хочу написать макрос, который нормализует некоторые данные для экспорта на SQL Server.SAS Macro - Объединение нескольких таблиц в один, управляемый другой таблицей
Есть два контрольных таблиц ...
- Таблица 1 (customers)
имеют список клиентов уникальных идентификаторов
- Таблица 2 (hierarchy)
содержат список имен таблиц
Есть то n
дополнительных таблиц. Один для каждой записи в (hierarchy)
(названный в поле SourceTableName). С формой ...
- CustomerURN, значение1, значение2
Я хочу, чтобы объединить все эти таблицы в одну таблицу (sample_results
), с формой ...
- SourceTableName, CustomerURN, Value1 , Value2
Однако единственные записи, которые следует скопировать, должны быть для клиентов, которые существуют в таблице (customers)
.
Я мог бы сделать это в жестко закодированного формате с использованием proc sql
, что-то вроде ...
proc sql;
insert into
SAMPLE_RESULTS
select
'TABLE1',
data.*
from
Table1 data
INNER JOIN
customers
ON data.CustomerURN = customers.CustomerURN
<repeat for every table>
Но каждую неделю новые записи добавляются в hierarchy
таблице.
Есть ли способ написать цикл, который подбирает имя таблицы из таблицы hierarchy
, а затем вызывает proc sql
, чтобы скопировать данные в sample_results
?