SQL - ISNULL

 
Vista:

ISNULL

Publicado por lissi (14 intervenciones) el 29/06/2006 20:12:25
HOLA TENGO UNA DUDA
EN EL SIGUIENTE CODIGO APESAR QUE USO EL ISNULL PARA QUE ME DE 0 SI NO HAY DATOS, PORQUE ME DEVUELVE NULL QUE ESTA MAL????

SELECT ISNULL(SUM(CALCULO.CALCULO),0)
FROM VW_VENDEDOR JOIN (
SELECT VW_VENDEDOR.CODIGOPERSONAL AS P,
ROUND((((SUM(ISNULL(D.CANTIDADEMPAQUE,0)) * ISNULL(D.FACTOR,0)) + SUM(ISNULL(D.CANTIDADUNIDAD,0))) * (ISNULL(P.PESO,0)/ ISNULL(D.FACTOR,0)))/10,0,1) AS CALCULO
FROM FACTURADETALLE D JOIN FACTURA F ON
F.CODIGOEMP=D.CODIGOEMP AND
F.TIPODOCUMENTO =D.TIPODOCUMENTO AND
F.NUMEROSERIE = D.NUMEROSERIE AND
F.NUMEROFACTURA= D.NUMEROFACTURA
JOIN PRODUCTO P ON
P.CODIGOPRODUCTO = D.CODIGOPRODUCTO AND
P.CODIGOEMP = D.CODIGOEMP
JOIN CLIENTE C ON
F.CODIGOCLIENTE = C.CODIGOCLIENTE
JOIN VW_VENDEDOR ON
F.CODIGOVENDEDOR= VW_VENDEDOR.CODIGOPERSONAL AND
F.CODIGOEMP=VW_VENDEDOR.CODIGOEMP
WHERE
P.CODIGOPROVEEDOR =000084 AND
P.CODIGOSUBLINEA =37 AND
F.TIPOFACTURA ='F' AND
F.SITUACIONFACTURA <> 90 AND
FECHAFACTURA BETWEEN '01/06/06' AND '09/06/06' AND
CODIGOTIPONEGOCIO IN('01','02','03','04','05','06','07')
GROUP BY PESO, FACTOR, VW_VENDEDOR.CODIGOPERSONAL) AS CALCULO
ON VW_VENDEDOR.CODIGOPERSONAL=CALCULO.P
GROUP BY VW_VENDEDOR.CODIGOPERSONAL )
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:ISNULL

Publicado por Isaías (5072 intervenciones) el 29/06/2006 22:56:21
Lissi

El error esta en la presedencia de las funciones:


SELECT SUM(ISNULL(CALCULO.CALCULO, 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:ISNULL

Publicado por lissi (14 intervenciones) el 30/06/2006 18:43:59
Corregi lo que me dijiste pero sigue igual!!! que puedo hacer??

SELECT SUM(ISNULL(CALCULO.CALCULO,0))
FROM VW_VENDEDOR JOIN (
SELECT VW_VENDEDOR.CODIGOPERSONAL AS P,
ROUND((((SUM(ISNULL(D.CANTIDADEMPAQUE,0)) * ISNULL(D.FACTOR,0)) + SUM(ISNULL(D.CANTIDADUNIDAD,0))) * (ISNULL(P.PESO,0)/ ISNULL(D.FACTOR,0)))/10,0,1) AS CALCULO
FROM FACTURADETALLE D JOIN FACTURA F ON
F.CODIGOEMP=D.CODIGOEMP AND
F.TIPODOCUMENTO =D.TIPODOCUMENTO AND
F.NUMEROSERIE = D.NUMEROSERIE AND
F.NUMEROFACTURA= D.NUMEROFACTURA
JOIN PRODUCTO P ON
P.CODIGOPRODUCTO = D.CODIGOPRODUCTO AND
P.CODIGOEMP = D.CODIGOEMP
JOIN CLIENTE C ON
F.CODIGOCLIENTE = C.CODIGOCLIENTE
WHERE
F.CODIGOVENDEDOR= VW_VENDEDOR.CODIGOPERSONAL AND
F.CODIGOEMP=VW_VENDEDOR.CODIGOEMP AND
P.CODIGOPROVEEDOR =000084 AND
P.CODIGOSUBLINEA =36 AND
F.TIPOFACTURA =''F'' AND
F.SITUACIONFACTURA <> 90 AND
F.FECHAFACTURA BETWEEN ''' + @fecini + ''' AND ''' + @fecfin + ''' AND
CODIGOTIPONEGOCIO IN(' + @tipo + ')
GROUP BY PESO, FACTOR, VW_VENDEDOR.CODIGOPERSONAL) AS CALCULO
ON VW_VENDEDOR.CODIGOPERSONAL=CALCULO.P
GROUP BY VW_VENDEDOR.CODIGOPERSONAL
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:ISNULL

Publicado por Isaías (5072 intervenciones) el 30/06/2006 20:38:57
Debi preguntar esto primero: ¿Es SQL Server?, ¿Que version?
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:ISNULL

Publicado por lissi (14 intervenciones) el 03/07/2006 18:48:25
Es sqlserver 2000
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