Ayuda con Select otra vez
Publicado por lissi (14 intervenciones) el 09/06/2006 19:54:33
HOLA PROGRAMADORES
El caso es el siguiente tengo que mostrar a TODOS los vendedores que esten en la tabla factura, el Total Dolares de la tabla facturadetalle y el TotalDolares de la tabla CXPNOTACREDITODETALLE para cada vendedor.
Es decir algo asi : Vendedor Total Factura TotalNota
El problema surge cuando en el where le paso alguna restriccion a la tabla CXPNOTACREDITO (esta comentado en el select de abajo) porque pierdo a todos los vendedores de la tabla factura y muestra solo los comunes entre ambas tablas. Pero es importante que le pase esas restriccion a la tabla CXPNOTACREDITO xq si no el calculo no estaria bien echo. Que puedo hacer?????
SELECT F.CODIGOVENDEDOR , SUM(FD.TOTALITEM)AS TFAC,
ISNULL(ROUND(SUM(ND.TOTALITEM)/(SELECT COUNT(DISTINCT(CODIGOVENDEDOR))FROM FACTURA),0,1),0)AS TNOTA
FROM FACTURADETALLE FD JOIN FACTURA F ON
FD.CODIGOEMP =F.CODIGOEMP AND
FD.TIPODOCUMENTO =F.TIPODOCUMENTO AND
FD.NUMEROSERIE = F.NUMEROSERIE AND
FD.NUMEROFACTURA= F.NUMEROFACTURA
LEFT JOIN CXPNOTACREDITO N ON
F.CODIGOVENDEDOR = N.CODIGOVENDEDOR
LEFT JOIN CXPNOTACREDITODETALLE ND ON
N.CODIGOEMP=ND.CODIGOEMP AND
N.NUMEROSERIE = ND.NUMEROSERIE AND
N.NUMERONOTACREDITO = ND.NUMERONOTACREDITO
JOIN CLIENTE C ON
F.CODIGOCLIENTE = C.CODIGOCLIENTE
LEFT JOIN CLIENTE CL ON
N.CODIGOCLIENTE = CL.CODIGOCLIENTE
WHERE
F.CODIGOEMP =001 AND
F.TIPODOCUMENTO IN(01,02)AND
F.CODIGOVENDEDOR <> 000001 AND
F.SITUACIONFACTURA <> 90 AND
F.TIPOFACTURA= 'F' AND
F.FECHAFACTURA BETWEEN '01/01/2005 00:00:00' AND '01/06/2006 23:00:00' AND
C.CODIGOTIPONEGOCIO IN('01','02','03','04','05','06','07') AND
C.ESTADOCLIENTE=01 --AND
-- N.CODIGOEMP =001 AND
-- N.SITUACIONNOTACREDITO <> 90 AND
-- N.FECHANOTACREDITO BETWEEN '01/01/2005 00:00:00' AND '01/06/2006 00:00:00'
GROUP BY F.CODIGOVENDEDOR
Si ejecuto la consulta de abajo como esta sale esto
VENDEDOR TFAC TNOTA
000002 6182 8.000000
000004 3246 1.000000
000005 1319 .000000
Pero si descomento cualquiera de las 3 ultimas linea de la consulta de abajo me aparece esto pierdo a los otros 2 vendedores. Lo que necesito es que se muestren todos los vendedores aunque en TNOTA tengan 0
VENDEDOR TFAC TNOTA
000002 6182 6.000000
Graxias
El caso es el siguiente tengo que mostrar a TODOS los vendedores que esten en la tabla factura, el Total Dolares de la tabla facturadetalle y el TotalDolares de la tabla CXPNOTACREDITODETALLE para cada vendedor.
Es decir algo asi : Vendedor Total Factura TotalNota
El problema surge cuando en el where le paso alguna restriccion a la tabla CXPNOTACREDITO (esta comentado en el select de abajo) porque pierdo a todos los vendedores de la tabla factura y muestra solo los comunes entre ambas tablas. Pero es importante que le pase esas restriccion a la tabla CXPNOTACREDITO xq si no el calculo no estaria bien echo. Que puedo hacer?????
SELECT F.CODIGOVENDEDOR , SUM(FD.TOTALITEM)AS TFAC,
ISNULL(ROUND(SUM(ND.TOTALITEM)/(SELECT COUNT(DISTINCT(CODIGOVENDEDOR))FROM FACTURA),0,1),0)AS TNOTA
FROM FACTURADETALLE FD JOIN FACTURA F ON
FD.CODIGOEMP =F.CODIGOEMP AND
FD.TIPODOCUMENTO =F.TIPODOCUMENTO AND
FD.NUMEROSERIE = F.NUMEROSERIE AND
FD.NUMEROFACTURA= F.NUMEROFACTURA
LEFT JOIN CXPNOTACREDITO N ON
F.CODIGOVENDEDOR = N.CODIGOVENDEDOR
LEFT JOIN CXPNOTACREDITODETALLE ND ON
N.CODIGOEMP=ND.CODIGOEMP AND
N.NUMEROSERIE = ND.NUMEROSERIE AND
N.NUMERONOTACREDITO = ND.NUMERONOTACREDITO
JOIN CLIENTE C ON
F.CODIGOCLIENTE = C.CODIGOCLIENTE
LEFT JOIN CLIENTE CL ON
N.CODIGOCLIENTE = CL.CODIGOCLIENTE
WHERE
F.CODIGOEMP =001 AND
F.TIPODOCUMENTO IN(01,02)AND
F.CODIGOVENDEDOR <> 000001 AND
F.SITUACIONFACTURA <> 90 AND
F.TIPOFACTURA= 'F' AND
F.FECHAFACTURA BETWEEN '01/01/2005 00:00:00' AND '01/06/2006 23:00:00' AND
C.CODIGOTIPONEGOCIO IN('01','02','03','04','05','06','07') AND
C.ESTADOCLIENTE=01 --AND
-- N.CODIGOEMP =001 AND
-- N.SITUACIONNOTACREDITO <> 90 AND
-- N.FECHANOTACREDITO BETWEEN '01/01/2005 00:00:00' AND '01/06/2006 00:00:00'
GROUP BY F.CODIGOVENDEDOR
Si ejecuto la consulta de abajo como esta sale esto
VENDEDOR TFAC TNOTA
000002 6182 8.000000
000004 3246 1.000000
000005 1319 .000000
Pero si descomento cualquiera de las 3 ultimas linea de la consulta de abajo me aparece esto pierdo a los otros 2 vendedores. Lo que necesito es que se muestren todos los vendedores aunque en TNOTA tengan 0
VENDEDOR TFAC TNOTA
000002 6182 6.000000
Graxias
Valora esta pregunta


0