SQL - Consulta sobre el resultado de otra consulta

 
Vista:

Consulta sobre el resultado de otra consulta

Publicado por Raúl Redondo (6 intervenciones) el 05/10/2005 15:36:14
Hola a tod@s,

necesito poder hacer una consulta sobre el resultado de otra consulta. Me explico, hago una primera consulta sobre varias tablas de la que obtengo 8 campos, y necesitaría poder hacer una consulta sobre esos 8 campos para obtener el resultado deseado.

¿Se puede hacer todo esto de alguna forma o necesito implementar una variable que me acumule el resultado de la primera consulta para obtener el resultado final?

Muchas gracias de antemano a tod@s,
Raúl Redondo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta sobre el resultado de otra consulta

Publicado por Isaías (5072 intervenciones) el 05/10/2005 16:32:38
SELECT * FROM MyOtraTabla JOIN
/* Esta me devuelve las 8 columnas */
(SELECT col1, col2, col3, col4, col5, col6, col7, col8 FROM MyTabla WHERE ...................) AS X
ON MyOtraTabla.col1 = x.col1
ON MyOtraTabla.col2 = x.col2
ON MyOtraTabla.col3 = x.col3
ON MyOtraTabla.col4 = x.col4
ON MyOtraTabla.col5 = x.col5
ON MyOtraTabla.col6 = x.col6
ON MyOtraTabla.col7 = x.col7
ON MyOtraTabla.col8 = x.col8

Nunca lo he hecho, tal vez funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sobre el resultado de otra consulta

Publicado por Raúl Redondo (6 intervenciones) el 06/10/2005 10:07:17
Lo siento, no ha funcionado, he probado de la siguiente forma sin obtener ningún resultado:

Select * From TABAUX LEFT Join (Select DPPLOT, SUBUBI, DPPDSC, DPPART, DPPFCD, DPPFCM, DPPFCA
From ILUBI, ILDPP, ILIEM, ILSUB
Where DPPTDC = 'fa' And DPPNDC = 1 And DPPND2 = 0 And SUBUBI = UBIUBI
And UBINAV = '1' And UBIPIC = 1 And DPPART = IEMART And IEMIEM = SUBIEM And (DPPCAP - DPPCPR) > 0
And ((IEMART = 'a1') Or (IEMART = 'a2')) And UBIORD In (Select Min(UBIORD)
From ILUBI, ILDPP, ILSUB, ILIEM Where DPPTDC = 'fa' And DPPNDC = 1 And DPPND2 = 0
And DPPART = SUBART And DPPART = IEMART And SUBUBI = UBIUBI And UBINAV = '1'
And UBIPIC = 1 And (DPPCAP - DPPCPR) > 0 And ((DPPART = 'a1') Or (DPPART = 'a2'))
Group By DPPART, DPPLOT)
Group By DPPLOT, DPPFCD, DPPFCM, DPPFCA, SUBUBI, DPPDSC, DPPART, UBIORD Order By UBIORD)
As T
On TABAUX.LOT = T.DPPLOT
On TABAUX.UBI = T.SUBUBI
On TABAUX.DSC = T.DPPDSC
On TABAUX.ART = T.DPPART
On TABAUX.FCD = T.DPPFCD
On TABAUX.FCM = T.DPPFCM
On TABAUX.FCA = T.DPPFCA
Where TABAUX.ART = 'a1'

No se si es a esto a lo que te referías o hay algo más, la consulta final será más compleja, pero quería primeramente probar que funcionaba de esta forma, muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sobre el resultado de otra consulta

Publicado por Isaías (5072 intervenciones) el 06/10/2005 15:59:29
La estructura de tu query, no es la correcta, despues de un FROM va el nombre de la tabla o vista a la cual se hace referencia.

Select * From TABAUX
LEFT Join (SELECT DPPLOT, SUBUBI, DPPDSC, DPPART, DPPFCD, DPPFCM, DPPFCA
FROM ILUBI, ILDPP, ILIEM, ILSUB
-- Este ultimo FROM, esta mal, hay 4 objetos posteriores a dicha instruccion.
-- mas adelante, cometes el mismo error.

And UBIORD In
(Select Min(UBIORD)
From ILUBI, ILDPP, ILSUB, ILIEM
-- Aqui el FROM, hace referencia a 4 objetos.
Where DPPTDC = 'fa' And DPPNDC = 1 And DPPND2 = 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta sobre el resultado de otra consulta

Publicado por kelly (7 intervenciones) el 06/10/2005 16:20:24
hola
esta puede ser una solucion a tu problema....
Con tu primera consulta realiza una vista y como en la vista quedan guardadas las 8 columnas resultantes de tu consulta puedes para la segunda consulta hacerla sobre la vista ya que alli solo estan las 8 columnas resultantes de la primera consulta no se si me entendiste pero has la prueba con eso te puede funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar