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')
 

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:
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 similares