Итак, у меня есть эта структура таблицы здесь http://sqlfiddle.com/#!6/5836b (аналогичная) и ниже. Таблица PForecast имела бы прогноз на верхнем уровне (родительском) продукте. Как только я получу список элементов прогноза за определенный период, мне нужно получить детали продукта для ребенка с наивысшим приоритетом (Ppriority) (для этого родительского sku). Также хотел бы перечислить все остальные дочерние sku, объединенные в отдельный столбец (необязательно).MSSql Родительские отношения с ребенком, получить верхний ребенок и присоединиться к другой таблице
create TABLE PForecast (ID INT, sku INT, qty int, entrydate datetime);
INSERT INTO PForecast (ID, sku, qty, entrydate)
VALUES(10, 29490, 1, '2016-09-04 00:00:00.000'),
(19, 112407, 1, '2016-09-04 00:00:00.000'),
(11, 112407, 1, '2016-11-14 00:00:00.000'),
(12, 112344, 12, '2016-01-24 00:00:00.000'),
(13, 112344, 17, '2016-02-05 00:00:00.000'),
(14, 112344, 11, '2016-06-03 00:00:00.000'),
(15, 264856, 7, '2016-05-09 00:00:00.000'),
(16, 26480, 9, '2016-07-18 00:00:00.000'),
(17, 264856, 4, '2016-09-27 00:00:00.000'),
(18, 29490, 2, '2016-12-02 00:00:00.000');
create TABLE AllProd2 (sku INT, ID INT, descrip varchar(100), dept varchar(100),
SubDept varchar(100), class varchar(100), SubClass varchar(100),
Vcode INT, PID INT, Ppriority INT, parentFlag VARCHAR(1));
INSERT INTO AllProd2 (sku, ID, descrip, dept, SubDept, class, SubClass, Vcode, PID, Ppriority, parentFlag)
VALUES
(169243, 21177, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043419, 1, 'C'),
(136643, 21394, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043419, 2, 'C'),
(112344, 1043419, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043419, NULL, 'P'),
(104516, 122, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043428, 2, 'C'),
(111508, 130, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043428, 1, 'C'),
(112407, 1043428, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043428, NULL, 'P'),
(115106, 17043838, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043428, 3, 'C'),
(161835, 116050567, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043428, 4, 'C'),
(238777, 1198119585, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043428, 5, 'C'),
(255210, 2092139762, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043555, 2, 'C'),
(264856, 1043555, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043555, NULL, 'P'),
(264863, 1043556, '14 DIA PC/RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043555, 1, 'C'),
(239124, 1995137332, '14 RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043890, 1, 'C'),
(266473, 1043889, '14 RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043890, 2, 'C'),
(266480, 1043890, '14 RD', 'abc', 'def', 'xyz', 'gty', 0004, 1043890, NULL, 'P'),
(26480, 10430, '14 PC/RD', 'abc', 'def', 'xyz', 'gty', 0007, 10430, NULL, 'P'),
(29490, 14480, '14 PC/RD hkj', 'abc', 'def', 'xyz', 'gty', 0004, 14480, NULL, 'N')
;
Было бы лучше, если я могу построить временную таблицу с набором данных, как мне нужно, чтобы получить более подробную информацию и присоединиться к другим таблицам после этого шага.
Любая помощь приветствуется.
Просьба включить пример или желаемые результаты. Непонятно, что именно вы ищете. –
Запрос будет выбирать все элементы в диапазоне дат из таблицы прогноза, как вы можете видеть из моего проекта таблицы, прогноз имеет только родительский ски и никакой дочерний ски. Таким образом, следующим шагом будет получение дочернего sku (для этой родительской записи) из таблицы продуктов и построение нового результирующего набора для подробного прогноза. то есть SKU 26480 имеет 3 записи в таблице прогнозов, мой конечный результат должен быть таким: – Eclipse
Обновленный комментарий: запрос будет выбирать все элементы в диапазоне дат от прогноза, как вы можете видеть в скрипте, прогноз имеет только родительский ски. Следующим шагом является получение дочерней sku (для этой родительской записи) из таблицы prod и создание нового набора результатов для подробного прогноза. то есть SKU 112344 имеет 3 записи в таблице прогноза. Если я смотрю на таблицу продуктов, родительский идентификатор для этого SKU составляет 1043419. Этот запрос должен отображать Ppriority с наивысшим рангом и получить эту целую строку. Таким образом, мой конечный результат должен быть, как этот: SKU: 136643 \t ID: 21394 \t VCode: ParentID: 1043419 \t ParentPriority: 2 \t ParentFlag: – Eclipse