FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
consulta de dos tablas
Hola a todos/as :
Trabajo con D5 y SQL y agradeceria si alguien puede ayudarme con una consulta sobre dos tablas. Ejecuto la siguiente consulta : Código:
SELECT TODOP.* FROM (SELECT TP.NMROORDEN, SUM(TP.HT) AS HTRBJDAS 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.CDGOTOP = 138 AND PARTES.FECHA BETWEEN '01/01/05' AND '31/01/05' AND TPLGIASHORAS.PREDINFPROD = 1) ) AS TP GROUP BY TP.NMROORDEN) AS TODOP SELECT TODOV.* FROM (SELECT TV.NMROORDEN, SUM(TV.HORASVAC) AS HVCCNES FROM (SELECT VCCNES.TRBJDOR, VCCNES.NMROORDEN, VCCNES.HORASVAC FROM VCCNES WHERE (VCCNES.TRBJDOR = 138 AND VCCNES.FECHADESDE BETWEEN '01/01/05' AND '31/01/05') ) AS TV GROUP BY TV.NMROORDEN) AS TODOV Código:
NMROORDEN HTRBJDASA1C21P0 94NMROORDEN HVCCNESA1C21P0 8 Alguien podria indicarme por donde empezar ??? Gracias y saludos a todos/as |
#2
|
|||
|
|||
Hasta, ahora lo mas que puedo recomendarte es que hagas una union, solo trata de seleccionar un campo mas para que te distinga los datos de la primera consulta con la otra..
Saludos... |
#3
|
|||
|
|||
Hasta, ahora lo mas que puedo recomendarte es que hagas una union, solo trata de seleccionar un campo mas para que te distinga los datos de la primera consulta con la otra..
Saludos... |
#4
|
|||
|
|||
No se que motor de bases de datos estás usando, pero puedes probar haciendo algo como esto:
|
#5
|
||||
|
||||
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 Gracias de nuevo a tod@s y saludos. |
|
|
|