Problemas con Función SUM

17/10/2007 - 22:39 por Natty | Informe spam
Tengo el siguiente problema con la función SUM espero me puedan
ayudar, lo que requiero es la suma de un una subconsulta y un campo
Tipo Numeric para que se pueda agrupar en una sola linea por ejemplo:

Clave Nombre de
Vendedor Vendedor Por vencer Venc 1 Venc 2 ... etc

SG Susana Gonzalez 45,000 32,221 75,858 ...
NC Natalia Chavez 85,999 45,999 0,00 ...


El problema es que me manda error al querer poner la funcion SUM,
alguna idea porfavor les agradeceria mucho, la consulta es como sigue:



select cxc.clave_vendedor,
vendedor.nombre,

SUM(case when dattediff(day. convert(datetime,cxc.fecha_vencimiento),
'20060930') <= 0 then
(cxc.total) + (Select isnull(sum(detalle.importe), 0)
from detalle
where detalle.id_cxc= cxc.id_cxc and
convert (datetime, detalle.fecha) <= '20060930' and
detalle.status= 1) else 0
end) as por_vencer,

SUM(case when (datediff (day, convert(datetime,cxc.fecha_vencimiento),
'20060930') > 0 and
(datediff (day, convert(datetime,cxc.fecha_vencimiento),
'20060930') <= per.fx1 or fx2 = '0') then
(cxc.total) + (Select isnull(sum(detalle.importe),0)
from detalle
where detalle.id_ccx = cxc.id_cxc and
convert(datetime,detalle.fecha) <= '20060930' and
detalle.status= 1) else 0
end) as vencimiento_uno,
..
from cxc,
per,
vendedor
group by clave_vendedor,
vendedor.nombre
 

Leer las respuestas

#1 Alejandro Mesa
18/10/2007 - 02:55 | Informe spam
Hola Natty,

Chequea la sintaxis de la primera funcion DATEDIFF que usas, hay un punto
despues del intervalo y no una coma.

SUM(case when dattediff(day. convert(datetime,cxc.fecha_vencimiento),



^
|
|

SUM(
case
when dattediff(day , convert(datetime,cxc.fecha_vencimiento),


AMB

"Natty" wrote:

Tengo el siguiente problema con la función SUM espero me puedan
ayudar, lo que requiero es la suma de un una subconsulta y un campo
Tipo Numeric para que se pueda agrupar en una sola linea por ejemplo:

Clave Nombre de
Vendedor Vendedor Por vencer Venc 1 Venc 2 ... etc

SG Susana Gonzalez 45,000 32,221 75,858 ...
NC Natalia Chavez 85,999 45,999 0,00 ...


El problema es que me manda error al querer poner la funcion SUM,
alguna idea porfavor les agradeceria mucho, la consulta es como sigue:



select cxc.clave_vendedor,
vendedor.nombre,

SUM(case when dattediff(day. convert(datetime,cxc.fecha_vencimiento),
'20060930') <= 0 then
(cxc.total) + (Select isnull(sum(detalle.importe), 0)
from detalle
where detalle.id_cxc= cxc.id_cxc and
convert (datetime, detalle.fecha) <= '20060930' and
detalle.status= 1) else 0
end) as por_vencer,

SUM(case when (datediff (day, convert(datetime,cxc.fecha_vencimiento),
'20060930') > 0 and
(datediff (day, convert(datetime,cxc.fecha_vencimiento),
'20060930') <= per.fx1 or fx2 = '0') then
(cxc.total) + (Select isnull(sum(detalle.importe),0)
from detalle
where detalle.id_ccx = cxc.id_cxc and
convert(datetime,detalle.fecha) <= '20060930' and
detalle.status= 1) else 0
end) as vencimiento_uno,
..
from cxc,
per,
vendedor
group by clave_vendedor,
vendedor.nombre


Preguntas similares