Выберите значение из выбранного случая - PullRequest
0 голосов
/ 30 октября 2019

Код ниже работает в 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'))

Однако, если у меня более трех групп, этоплохой способ использовать «ЕСЛИ». Итак, мне интересно, есть ли лучший метод. Спасибо.

...