Можно ли изменить результат, только если их несколько?
Мой запрос приносит такой результат:
Дата | Код | Описание | Количество |
---|---|---|---|
01/01 | 1001 | Продукт А | 1234 |
01.02 | 1001 | Продукт А | 2345 |
01.03 | 1001 | Продукт А | 3456 |
Если у меня есть только один продукт, это нормально.
Но если у меня их несколько, это выглядит так:
Дата | Код | Описание | Количество |
---|---|---|---|
01/01 | 1001 | Продукт А | 1234 |
01.02 | 1001 | Продукт А | 2345 |
01.03 | 1001 | Продукт А | 3456 |
01/01 | 1002 | Продукт Б | 4321 |
01.02 | 1003 | Продукт Б | 5432 |
01.03 | 1004 | Продукт Б | 6543 |
Возникает вопрос: можно ли изменять значения только в том случае, если в моем запросе есть более одного продукта?
Что-то вроде этого; если у меня есть продукты A и B, он должен показать:
Дата | Код | Описание | Количество |
---|---|---|---|
01/01 | Разные | Разные | 5555 |
01.02 | Разные | Разные | 7777 |
01.03 | Разные | Разные | 9999 |
Вы можете использовать выражения case, просматривая количество (необязательно различных) значений в каждом столбце; Например:
select some_date,
case when count(distinct code) > 1
then 'Various'
else to_char(max(code))
end as code,
case when count(distinct description) > 1
then 'Various'
else max(description)
end as description,
sum(amount) as amount
from your_table
group by some_date
order by some_date;