У меня есть эти данные:
CREATE TABLE #MyTable (Names VARCHAR(50), Category VARCHAR(50), OrderDate DATE, Quantity INT)
INSERT INTO #MyTable VALUES
('Buchanan', 'Dairy', '2019-10-08', 12),
('Buchanan', 'Grains', '2019-11-18', 3),
('Buchanan', 'Dairy', '2019-07-15', 3),
('Suyama', 'Produce', '2019-07-08', 18),
('Suyama', 'Produce', '2019-09-03', 27),
('Peacock', 'Seafood', '2019-10-30', 37),
('Peacock', 'Produce', '2019-07-24', 15),
('Peacock', 'Condiments', '2019-07-29', 23),
('Leverling', 'Grains', '2019-06-05', 49),
('Leverling', 'Cereals', '2019-08-07', 31),
('Leverling', 'Condiments', '2019-08-21', 42),
('Peacock', 'Confections', '2019-12-16', 17),
('Peacock', 'Dairy', '2019-09-04', 15),
('Peacock', 'Dairy', '2019-11-17', 44),
('Leverling', 'Dairy', '2019-11-12', 11),
('Leverling', 'Beverages', '2019-06-19', 50),
('Leverling', 'Confections', '2019-06-22', 7),
('Buchanan', 'Beverages', '2019-12-18', 23),
('Buchanan', 'Poultry', '2019-11-09', 29),
('Buchanan', 'Produce', '2019-08-18', 14);
Я хочу предоставить несколько параметров для месяцев.
Используя этот запрос
DECLARE @Months VARCHAR(10)
SET @Months = 'Jun-19','Aug-19'
SELECT
Names,
Category,
OrderDate,
Quantity,
FORMAT(OrderDate,'MMM-yy') AS MonthYear,
CASE
WHEN FORMAT(OrderDate,'MMM-yy') IN (@Months) THEN Quantity
END AS MonthSelected
FROM #MyTable
ORDER BY OrderDate
Если я предоставлю одно значение, например 'Jun-19', оно будет работать нормально.
Однако, если я предоставил более одного значения, например, 'Jun-19', 'Aug-19', будет выдано сообщение об ошибке:
Сообщение 102, Уровень 15, Состояние 1, Строка 15 Неверный синтаксис рядом с ','
Любая помощь в том, как я могу передать несколько месяцев параметру?
Требуемый вывод при передаче 'Jun-19', 'Aug-19' в качестве примера
NOTE Я не могу использовать параметр в предложении where, так как клиент хочет видеть все данные и месяц, не выбранный должен быть НЕДЕЙСТВИТЕЛЕН
Желаемый вывод