В приведенном ниже примере я пытаюсь подсчитать количество напитков, которые я могу сделать, исходя из доступности ингредиентов на каждое место в баре, которое у меня есть.
Дальнейшее уточнение, как показано в приведенном ниже примере: на основе цифр, выделенных в приведенной ниже таблице; Я знаю, что я могу сделать только 1 Маргарита на 30/30/2018 (в DC или FL, если я отправлю материалы на место).
Пример таблицы данных
Пожалуйста, используйте приведенный ниже код, чтобы ввести соответствующие данные выше:
CREATE TABLE #drinks
(
a_date DATE,
loc NVARCHAR(2),
parent NVARCHAR(20),
line_num INT,
child NVARCHAR(20),
avail_amt INT
);
INSERT INTO #drinks VALUES ('6/26/2018','CA','Long Island','1','Vodka','7');
INSERT INTO #drinks VALUES ('6/27/2018','CA','Long Island','2','Gin','5');
INSERT INTO #drinks VALUES ('6/28/2018','CA','Long Island','3','Rum','26');
INSERT INTO #drinks VALUES ('6/26/2018','DC','Long Island','1','Vodka','15');
INSERT INTO #drinks VALUES ('6/27/2018','DC','Long Island','2','Gin','18');
INSERT INTO #drinks VALUES ('6/28/2018','DC','Long Island','3','Rum','5');
INSERT INTO #drinks VALUES ('6/26/2018','FL','Long Island','1','Vodka','34');
INSERT INTO #drinks VALUES ('6/27/2018','FL','Long Island','2','Gin','14');
INSERT INTO #drinks VALUES ('6/28/2018','FL','Long Island','3','Rum','4');
INSERT INTO #drinks VALUES ('6/30/2018','DC','Margarita','1','Tequila','6');
INSERT INTO #drinks VALUES ('7/1/2018','DC','Margarita','2','Triple Sec','3');
INSERT INTO #drinks VALUES ('6/29/2018','FL','Margarita','1','Tequila','1');
INSERT INTO #drinks VALUES ('6/30/2018','FL','Margarita','2','Triple Sec','0');
INSERT INTO #drinks VALUES ('7/2/2018','CA','Cuba Libre','1','Rum','1');
INSERT INTO #drinks VALUES ('7/8/2018','CA','Cuba Libre','2','Coke','5');
INSERT INTO #drinks VALUES ('7/13/2018','CA','Cuba Libre','3','Lime','14');
INSERT INTO #drinks VALUES ('7/5/2018','DC','Cuba Libre','1','Rum','0');
INSERT INTO #drinks VALUES ('7/19/2018','DC','Cuba Libre','2','Coke','12');
INSERT INTO #drinks VALUES ('7/31/2018','DC','Cuba Libre','3','Lime','9');
INSERT INTO #drinks VALUES ('7/2/2018','FL','Cuba Libre','1','Rum','1');
INSERT INTO #drinks VALUES ('7/19/2018','FL','Cuba Libre','2','Coke','3');
INSERT INTO #drinks VALUES ('7/17/2018','FL','Cuba Libre','3','Lime','2');
INSERT INTO #drinks VALUES ('6/30/2018','DC','Long Island','3','Rum','4');
INSERT INTO #drinks VALUES ('7/7/2018','FL','Cosmopolitan','5','Triple Sec','7');
Ожидаемые результаты:
Обратите внимание, что, как видно из ожидаемых результатов, дети взаимозаменяемы. Например, 7/7/2018 Triple Sec прибыл для напитка космополитичным; однако, поскольку ребенок также ром, он изменяет доступность Margaritas для FL.
Также не обновление в регионе DC для Кубы Libre как 06/30, так и 06/31.
Пожалуйста, примите во внимание, что детали взаимозаменяемы, а также каждый раз, когда приходит новый предмет, он делает доступным любой предмет ранее.
Наконец - было бы здорово, если бы я мог добавить еще один столбец, который показывает наличие набора, независимо от местоположения, основываясь только на доступности ребенка. Для примера. Если в DC есть ребенок № 3 и ни один из FL, FL может предположить, что у них достаточно инвентаря для приготовления напитка на основе инвентаря в другом месте!