Ver Mensaje Individual
  #5  
Antiguo 15-04-2005
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Reputación: 21
tgsistemas Va por buen camino
Thumbs up Posible solución

Saludos a tod@s :

Ante todo dar las gracias a las respuestas recibidas y pedir disculpas por tardar tanto en publicar una posible solución.
Tras varias pruebas conseguí el resultado con la siguiente consulta :
Código:
 
SELECT TODO.*, (TODO.HTRAB + TODO.HVAC) AS HTOTAL
FROM (SELECT TLPRDOR, NMROORDEN,
	SUM(CASE (TODOTONI.TABLA) WHEN 'TRA' THEN HORAS ELSE 0 END) AS HTRAB,
	SUM(CASE (TODOTONI.TABLA) WHEN 'VAC' THEN HORAS ELSE 0 END) AS HVAC
	FROM
		(	
		SELECT TODOP.* 
		FROM (SELECT TP.CDGOTOP AS TLPRDOR, TP.NMROORDEN, SUM(TP.HT) AS HORAS, 'TRA' AS TABLA
			FROM (SELECT PARTES.CDGOTOP, PARTES.NMROORDEN, PARTESLIN.HT
				FROM PARTES INNER JOIN
					PARTESLIN ON PARTES.CDGO = PARTESLIN.CDGOPARTE INNER JOIN
					TPLGIASHORAS ON PARTESLIN.TPLGIA = TPLGIASHORAS.CDGO
				WHERE (PARTES.FECHA BETWEEN '01/03/05' AND '31/03/05' AND TPLGIASHORAS.PREDINFPROD = 1)
				) AS TP
		GROUP BY TP.CDGOTOP, TP.NMROORDEN) AS TODOP
	
		UNION

		SELECT TODOV.* 
		FROM (SELECT TV.TRBJDOR AS TLPRDOR, TV.NMROORDEN, SUM(TV.HORASVAC) AS HORAS, 'VAC' AS TABLA
			FROM (SELECT VCCNES.TRBJDOR, VCCNES.NMROORDEN, VCCNES.HORASVAC
				FROM VCCNES
				WHERE (VCCNES.FECHADESDE BETWEEN '01/03/05' AND '31/03/05')
				) AS TV
		GROUP BY TV.TRBJDOR, TV.NMROORDEN) AS TODOV
		) AS TODOTONI
GROUP BY TLPRDOR, NMROORDEN) AS TODO
ORDER BY TLPRDOR, NMROORDEN
No tengo mucha experiencia con SQL, seguramente el codigo es optimizable , pero los resultados obtenidos son los que necesitaba.

Gracias de nuevo a tod@s y saludos.
__________________
Toni | blog
Responder Con Cita