我想编写一个查询来返回一些概念及其各自价格的描述,但我想制作两个不同的列来对两个不同的项目值类别进行分类。有可能吗?
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');
我想编代这样的代码: Ideal query
答案 0 :(得分:0)
这可行吗? (也许有更好的解决方案,感觉有点棘手......随意“切换”):
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'));