В приведенном ниже примере я пытаюсь подсчитать количество напитков, которое я могу приготовить, исходя из наличия ингредиентов на бар, который у меня есть.
Для дальнейшего уточнения, как видно из приведенного ниже примера: на основе цифр, выделенных на диаграмме ниже; Я знаю, что я могу сделать 1 Маргариту только 30.06.2008 (в ДК или ФЛ, если я отправлю припасы на место).
Образец таблицы данных
Пожалуйста, используйте код ниже, чтобы ввести соответствующие данные выше:
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 для Куба Либре на 06/30 и 06/31.
Пожалуйста, примите во внимание, что детали являются взаимозаменяемыми, а также, что каждый раз, когда появляется новый предмет, он делает доступным любой предмет ранее.
Наконец, было бы замечательно, если бы я мог добавить еще один столбец, который показывает доступность комплекта независимо от местоположения, основываясь только на наличии ребенка. Например Если в округе Колумбия есть ребенок № 3, а в штате Флорида их нет, они могут предположить, что у них достаточно инвентаря для приготовления напитка на основе инвентаря в другом месте!