Cambiar SubConsulta a relacion Left Outer Join

02/04/2008 - 18:57 por Antonio Ortiz | Informe spam
Agradeceria me ayudaran para cambiar esta consulta con una subconsulta de la
forma Left Outer Join, pues necesito obtener mas de 1 columna de la tabla
TbaKardex y de esta manera no me es posible, a menos que repita la consulta
para cada columna.

SELECT IDProducto, Codigo, Descripcion,
ISNULL(SELECT TOP 1 ExistenciaFinal
FROM TbaKardex
WHERE (Fecha BETWEEN '20080215 00:00' AND
'20080215 13:59') AND (TbaKardex.IDProducto = TbaProducto.IDProducto)
ORDER BY IDKardex DESC).0) AS ExistenciaFinal
FROM TbaProducto


gracias de antemano,


Antonio Ortiz
asesor en sistemas
www.aortiz.net
www.progvisual.com

Preguntas similare

Leer las respuestas

#11 Antonio Ortiz
07/04/2008 - 06:13 | Informe spam
Gracias, procedo a probar.


Antonio Ortiz
asesor en sistemas
www.aortiz.net
www.progvisual.com



"Carlos M. Calvelo" escribió en el mensaje
news:
Hola Antonio,

On 6 apr, 21:18, "Antonio Ortiz" wrote:
Disculpas, fue un error mio, IDKardex es incremental y deberia se
secuencial




Pues a mi me parece que la solución que tu has encontrado
ha está bastante bien no?

En el FROM puedes evitarte un SELECT * FROM porque
SELECT TbaKardex.* FROM TbaKardex
es lo mismo que simplemente TbaKardex

FROM
TbaProducto
LEFT OUTER JOIN
( TbaKardex K
INNER JOIN
( SELECT IDProducto,
MAX(IDKardex) AS IDKardex
FROM TbaKardex
WHERE (Fecha <= '20080215 23:59:59.99') And (IDAlmacen=1)
GROUP BY IDProducto
) K2 ON K.IDKardex=K2.IDKardex
) ON TbaProducto.IDProducto = K.IDProducto


Supongo que la fecha viene en una cadena 'AAAAMMDD'
Entonces yo pondría un
(Fecha < CAST(@fecha as datetime) + 1)
en vez de
(Fecha <= @fecha + ' 23:59:59.99')

En fin... solo detalles de los que se puede decir que
para gustos se pintan colores.

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida