Я пытаюсь создать модуль в VBA, который будет запрашивать 2 источника данных и присоединиться к ним в общем поле «Имя». Проблема в том, что данные размыты по-разному. Множество Я пытаюсь изменить в настоящее время выглядит следующим образом:SQL: разбить столбец на несколько столбцов по значению ячейки
И я пытаюсь сделать его выглядеть следующим образом:
Так что я могу присоединиться к ней осталось с запросом из моего второго набора данных, который выражается «именем», а не «значением элемента».
FWIW, вот как выглядит запрос, который я сейчас пытаюсь запустить. Я использую неявный присоединиться, чтобы получить «текущее значение» и «прошлое значение» для каждого «имени», но ничего из этого не относится к набору данным 2:
with set1 as (SELECT NAME, ITEM_CODE, ITEM_VALUE_NUMBER as CURRENT_VALUE FROM [...] WHERE [...]),
with set2 as (SELECT NAME, ITEM_CODE, ITEM_VALUE_NUMBER as PAST_VALUE FROM [...] WHERE [...]),
SELECT set1.NAME [ITEM_1], [ITEM_2], [ITEM_3] from
(SELECT set1.NAME, set1.CURRENT_VALUE, set2.PAST_VALUE FROM set1, set2 WHERE set1.NAME=set2.NAME and set1.ITEM_CODE=set2.ITEM_CODE) AS SourceTable
PIVOT (max(CURRENT_VALUE) for ITEM_CODE in [ITEM_1], [ITEM_2], [ITEM_3]) AS PivotTable;
Спасибо заранее для каких-либо указаний, вы можете предложить!
Большое спасибо! Я закончил делать что-то гораздо более грубое: я объявил шесть наборов, по одному для каждого элемента current/past, а затем присоединил set2 к set1, set3 к set2 и т. Д. Было бы интересно получить запрос в форме, которую вы предложили мне для работы (Я просто не мог заставить его работать), но сейчас это нужно будет сделать. – helsinki86