Oracle SQL Как я могу отделить значения от столбца в двух разных столбцах?

Я хочу закодировать запрос, чтобы получить описание некоторых концепций и их соответствующую цену, но я хочу сделать два разных столбца, чтобы классифицировать две разные категории товаров по значениям. Является ли это возможным?

SELECT b.descripcion CONCEPTO, a.cantidad, a.importe,
       c.descripcion
FROM   detalles_liquidaciones a
JOIN   conceptos b
ON    (a.codigo_concepto = b.codigo)
JOIN   tipos_conceptos c
ON    (b.codigo_tipo = c.codigo)
WHERE  a.numero_liquidacion = 13802
AND    c.descripcion IN ('HABER', 'RETENCION', 'ANTICIPO');

Выходной запрос

Я хочу закодировать что-то вроде этого: Идеальный запрос

1 ответ

Решение

Может ли это работать? (Возможно, есть лучшее решение, оно кажется немного сложным... буквально "переключение"):

SELECT Concepto ,
      (CASE
         WHEN description LIKE 'HABER' THEN
          importe
         ELSE
          NULL
       END) haberes,
       (CASE
         WHEN description LIKE 'HABER' THEN
          cantidad
         ELSE
          NULL
       END) cantidad,
       (CASE
         WHEN description LIKE 'RETENCION' OR description LIKE 'ANTICIPO' THEN
          importe
         ELSE
          NULL
       END) retenciones
  FROM (SELECT b.descripcion concepto, a.cantidad, a.importe, c.descripcion
          FROM detalles_liquidaciones a
          JOIN conceptos b
            ON (a.codigo_concepto = b.codigo)
          JOIN tipos_conceptos c
            ON (b.codigo_tipo = c.codigo)
         WHERE a.numero_liquidacion = 13802
           AND c.descripcion IN ('HABER', 'RETENCION', 'ANTICIPO'));
Другие вопросы по тегам