Код ниже работает в MySQL. Тем не менее, мне интересно, если у меня есть больше групп для выбора, или я могу сэкономить время при запуске программы. Потому что он выбирает группу, которую я хочу в первый раз, а затем изменяет значение, чтобы создать столбец во второй раз. Спасибо.
Groups:
Group_1:('F01', 'D01')
Group_2:('F01', 'B01')
Group_3: ('B01', 'D01')
SELECT O.OrderNumber, CONVERT(date,O.OrderDate) AS Date,
P.ProductName, I.Quantity, I.UnitPrice,
CASE WHEN P.ProductSection_ID = 'F01' THEN 'Frozen food section'
WHEN P.ProductSection_ID = 'B01' THEN 'Body and beauty section'
WHEN P.ProductSection_ID = 'D01' THEN 'Deli section'
END AS `ProductSection`
FROM Order AS O
JOIN OrderItem AS I ON O.Id = I.OrderId
JOIN Product AS P ON P.Id = I.ProductIdAND
WHERE
If('GROUP_1' = ?group, P.ProductSection_ID in ('F01', 'D01'), P.ProductSection_ID in ('F01', 'B01'))
ORDER BY O.OrderNumber
Я использую Tibco для извлечения данных из SQL. Код MySQL можно запустить в программном обеспечении, и «группа» будет рассматриваться как свойства для выбора нужных мне данных (группа1, группа2 или группа3). Если я заменю «группу» на GROUP_2
ниже, она выберет группу2. If('GROUP_1' = ?group, P.ProductSection_ID in ('F01', 'D01'), P.ProductSection_ID in ('F01', 'B01'))
Если я использую замену? Group на GROUP_1
ниже, она выберет group1.
If('GROUP_1' = ?group, P.ProductSection_ID in ('F01', 'D01'), P.ProductSection_ID in ('F01', 'B01'))
Однако, если у меня более трех групп, этоплохой способ использовать «ЕСЛИ». Итак, мне интересно, есть ли лучший метод. Спасибо.