Obtener diferentes valores de un mismo campo - Múltiples Joins
SELECT ROW_NUMBER() OVER(ORDER BY t.trabajador) AS 'nro',
t.trabajador,
CASE
WHEN t.sexo = 1 THEN 'M'
ELSE 'F'
END AS sexo,
SUM(a.importe) AS importe_1165,
SUM(b.importe) AS importe_1006,
SUM(c.importe) AS importe_601
FROM trabajadores t
INNER JOIN (
SELECT trabajador,
concepto,
SUM(importe) AS importe
FROM transacciones_ns
WHERE compania = 'A'
AND clase_nomina = 'AD'
AND id_calendario = 209
AND concepto = 1165
AND trabajador = 90
GROUP BY
trabajador,
concepto
) a
ON a.trabajador = t.trabajador
INNER JOIN (
SELECT trabajador,
concepto,
SUM(importe) AS importe
FROM transacciones_ns
WHERE compania = 'A'
AND clase_nomina = 'AD'
AND id_calendario = 209
AND concepto = 1006
AND trabajador = 90
GROUP BY
trabajador,
concepto
) b
ON b.trabajador = t.trabajador
INNER JOIN (
SELECT trabajador,
concepto,
SUM(importe) AS importe
FROM transacciones_ns
WHERE compania = 'A'
AND clase_nomina = 'AD'
AND id_calendario = 209
AND concepto = 601
AND trabajador = 90
GROUP BY
trabajador,
concepto
) c
ON c.trabajador = t.trabajador
GROUP BY
t.trabajador,
sexo
También se puede revisar el artículo siguiente:
http://efreedom.com/Question/1-1172926/SQL-Issue-Calculating-Percentages-Using-Multiple-Joins-Table
No comments:
Post a Comment