Мне нужно отформатировать таким образом, чтобы получить количество лет, месяцев и их комбинацию или «Нет гарантии», в зависимости от того, есть гарантия на данный продукт или нет.Я пытался с case + extract, но он не работал
select p.product_name, sum(o.quantity) as total_quantity,
case when p.warranty_period = interval '0-0' year to month then 'No
warranty'
when p.warranty_period < interval '0-11' year to month then
extract(month from p.warranty_period) || ' months'
when p.warranty_period < interval '21-0' year to month then -- make it
for all years, not only 1
extract(year from p.warranty_period) || ' years'
when p.warranty_period > interval '0-0' year to month then
extract(year from p.warranty_period) || ' years and ' || extract(month
from p.warranty_period)
|| ' months'
end WARRANTY from PRODUCT_INFORMATION p
join order_items o on p.product_id = o.product_id
group by p.product_name, p.warranty_period;
Я ожидаю получить столбец ГАРАНТИЯ с 4 переменными:
Без гарантии
- лет
- месяцев
- лет и месяцев