У меня есть набор данных, который выглядит следующим образом:
| Upper_Level_Part_Number | CUM_PART_NUM | Alternate_Part | Make_Buy | Quantity_Needed |
|:-----------------------:|:------------:|:--------------:|:--------:|:---------------:|
| AAB233 | IEO333 | N | B | 1 |
| AAB233 | IEO333 | N | M | 1 |
| AAB233 | IEO333 | Y | B | 1 |
| AAB233 | IEO333 | Y | M | 1 |
Я пытаюсь создать выборку из этих данных, которая выглядит следующим образом:
| Upper_Level_Part_Number | CUM_PART_NUM | Alternate_Part | Make_Buy | Quantity_Needed |
|:-----------------------:|:------------:|:--------------:|:--------:|:---------------:|
| AAB233 | IEO332 | Both | Both | 1 |
По сути, имитируя логику c, которая гласит:
Если CUM_PART_NUM
имеет и B
, и M
для Make_Buy
, измените его на Both
. Если CUM_PART_NUM
имеет N
и Y
для Alternate_Part
, измените его на Both
Я попытался использовать:
SELECT
CUM_PART_NUM,
CASE WHEN Make_Buy = 'B' AND Make_Buy = 'M' THEN 'Both' ELSE Make_Buy END AS Make_Buy
FROM
BOM
Но get:
CUM_PART_NUM Make_Buy
IEO333 B
IEO333 M
IEO333 B
IEO333 M
Я настроил SQLFIDDLE для демонстрации.
Как я могу агрегировать, если CUM_PART_NUM
удовлетворяет условию?