Problema con Query

16/06/2009 - 23:30 por bavaro | Informe spam
Estimados :
No logro resolver este problema, tengo tres tablas :
InVinicialE
InVinicialS
InvIni1

Esta Query funciona cuando encuentra registros en invIni1, sino no
entrega nada en las fórmulas del select.
Como hago para que si no encuentra registro en Invini1 me deje 0 en
los campos del InvIni1 que estoy ocupando en la suma, para así
entregar el resultado de la suma y resta?
.
Estoy buscando un producto en especial que si tiene datos en
InvincialE y InvincialS, pero no está en la tabla InvIni1.

SELECT dbo.INVINI1.PrdCod, ISNULL(dbo.INVINI1.IniCan, 0) +
dbo.InVInicialE.EntradaU - dbo.InvInicialS.SalidaU AS InvIU, ISNULL
(dbo.INVINI1.IniValOtr, 0)
+ dbo.InVInicialE.Entrada$ -
dbo.InvInicialS.Salida$ AS InvI$
FROM dbo.InVInicialE LEFT OUTER JOIN
dbo.INVINI1 ON dbo.InVInicialE.PRDCOD dbo.INVINI1.PrdCod RIGHT OUTER JOIN
dbo.InvInicialS ON dbo.INVINI1.PrdCod dbo.InvInicialS.PRDCOD
WHERE (dbo.INVINI1.PrdCod = '441002510094')

Preguntas similare

Leer las respuestas

#1 David Austria
17/06/2009 - 01:12 | Informe spam
¡Hola!
Revisa bien que en tu consulta tu tabla principal sea INVINI1.
También usa el ISNULL en todos los campos para garantizar no tener
valores nulos en la consulta.

Intenta lo siguiente:

SELECT INVINI1.PrdCod,
ISNULL(INVINI1.IniCan, 0) +
ISNULL(InVInicialE.EntradaU, 0) - ISNULL(InvInicialS.SalidaU, 0) AS
InvIU,
ISNULL(INVINI1.IniValOtr, 0) +
ISNULL(InVInicialE.Entrada, 0) - ISNULL(InvInicialS.Salida, 0) AS InvI
FROM
dbo.InVInicialE RIGHT OUTER JOIN
dbo.InvInicialS RIGHT OUTER JOIN
dbo.INVINI1 ON
dbo.InvInicialS.PrdCod = dbo.INVINI1.PrdCod ON
dbo.InVInicialE.PrdCod = dbo.INVINI1.PrdCod
WHERE (dbo.INVINI1.PrdCod = '441002510094')

Saludos
David Austria



On 16 jun, 16:30, bavaro wrote:
Mostrar la cita
#2 bavaro
17/06/2009 - 14:08 | Informe spam
David, gracias por responder, me sigue no entregando datos, si ejecuto
la vistas InvInicialE y InvInicialS por si solas me entrega datos para
ese producto, pero al enlazar con la tabla InvIni1 (el producto no
está en esta tabla) no me muestra nada, cuál podría ser el problema?

On 16 jun, 19:12, David Austria wrote:
Mostrar la cita
#3 Carlos Sacristan
17/06/2009 - 14:31 | Informe spam
Si filtras al final por dbo.INVINI1.PrdCod = '441002510094' y no existe
ningún registro que cumpla ese criterio, es normal que no te devuelva nada
(fíjate que estás usando el campo PrdCod de la tabla INVIN1, y tú mismo has
dicho que en dicha tabla no existe ese código de producto).

Tendrás que filtrar por cualquiera de las otras vistas (InvInicialE o
InvInicialS)

Un saludo
-
www.navento.com
Servicios de Localización GPS

http://blogs.solidq.com/ES/ElRincon...fault.aspx

"bavaro" escribió en el mensaje
news:
David, gracias por responder, me sigue no entregando datos, si ejecuto
la vistas InvInicialE y InvInicialS por si solas me entrega datos para
ese producto, pero al enlazar con la tabla InvIni1 (el producto no
está en esta tabla) no me muestra nada, cuál podría ser el problema?

On 16 jun, 19:12, David Austria wrote:
Mostrar la cita
#4 bavaro
17/06/2009 - 14:53 | Informe spam
Carlos, tienes razón, le agregué una tabla de productos de venta para
que lo busque ahí y lo encuentre, el problema es que el resultado que
sale es el siguiente :

prdcod InvIU InvIS
441002510094 NULL NULL

es como que este campo ISNULL(dbo.INVINI1.IniCan, 0) lo siga tomando
como null y no 0 para que haga la operación de suma y resta en el
select.

la query cambió a esta :

SELECT dbo.PRODVENT.PrdCod, ISNULL(dbo.INVINI1.IniCan, 0) +
dbo.InVInicialE.EntradaU - dbo.InvInicialS.SalidaU AS InvIU, ISNULL
(dbo.INVINI1.IniValOtr, 0)
+ dbo.InVInicialE.Entrada$ -
dbo.InvInicialS.Salida$ AS InvI$
FROM dbo.InVInicialE LEFT OUTER JOIN
dbo.INVINI1 ON dbo.InVInicialE.PRDCOD dbo.INVINI1.PrdCod RIGHT OUTER JOIN
dbo.PRODVENT INNER JOIN
dbo.InvInicialS ON dbo.PRODVENT.PrdCod dbo.InvInicialS.PRDCOD ON dbo.InVInicialE.PRDCOD = dbo.PRODVENT.PrdCod
AND
dbo.INVINI1.PrdCod = dbo.InvInicialS.PRDCOD
WHERE (dbo.PRODVENT.PrdCod = '441002510094')



On 17 jun, 08:31, "Carlos Sacristan" wrote:
Mostrar la cita
#5 bavaro
17/06/2009 - 14:57 | Informe spam
Gracias a todos, solucionado, aparte del comentario de Carlos, era
esta instrucción :

dbo.PRODVENT INNER JOIN

tiene que ser : LEFT OUTER JOIN


On 17 jun, 08:53, bavaro wrote:
Mostrar la cita
Ads by Google
Search Busqueda sugerida