Estimados Sres. este es mi Procedimiento Almacenado, el problema recurre cuando intento coger el valor de un campo (b.tipocambio) que pertenece a la tabla superior RE_Venta y asu vez intento hacer un SUM(), me presenta el error que menciono en la parte inferior de este mensaje... ¿Alguién me puede ayudar?
Código SQL:
Ver originalSELECT b.idventa,b.fecha, b.tipodocumento, c.nombrecorto, rtrim(b.seriedocumento)+'-'+b.numerodocumento nrodoc,
b.nombrecliente,b.dependencia,f.nombre AS nombreDependencia,b.subdependencia,h.nombre AS nombreSubdependencia,b.proyecto,g.nombre AS nombreProyecto,a.partida,p.nombre AS nombrePartida, SUM(a.total) importe,b.tipocambio,
isnull((SELECT SUM(CASE re_ventapago.moneda WHEN 1 THEN re_ventapago.importe/b.tipocambio ELSE re_ventapago.importe END) FROM re_ventapago,re_venta WHERE re_ventapago.idventafactura=b.idventa AND re_venta.idventa=re_ventapago.idventa AND re_venta.estado=1 AND re_ventapago.estado=1 ),0) AS pagado,
isnull(SUM(a.total)-(SELECT SUM(re_ventapago.importe) FROM re_ventapago,re_venta WHERE re_ventapago.idventafactura=b.idventa AND re_venta.idventa=re_ventapago.idventa AND re_venta.estado=1 AND re_ventapago.estado=1),SUM(a.total)) AS saldo,
DATEDIFF(dd,b.fecha,'Abr 24 2012 12:00AM') AS dias
FROM re_ventadetalle a LEFT OUTER JOIN re_venta b ON a.idventa=b.idventa
LEFT OUTER JOIN si_tipodocumento c ON b.tipodocumento=c.idtipodocumento
LEFT OUTER JOIN si_moneda d ON b.moneda=d.idmoneda
LEFT OUTER JOIN te_partida p ON a.partida=p.codigo
LEFT OUTER JOIN si_fuentefinanciamiento e ON p.fuentefinanciamiento=e.codigofuente
LEFT OUTER JOIN si_dependencia f ON b.dependencia=f.codigo
LEFT OUTER JOIN si_subdependencia h ON b.subdependencia=h.codigo
LEFT OUTER JOIN si_proyecto g ON (b.proyecto=g.codigo AND b.dependencia=g.dependencia)
WHERE b.estado IN (2) AND b.tipodocumento IN (1) AND
b.fecha <= 'Abr 24 2012 12:00AM'
AND b.moneda='2' GROUP BY b.tipodocumento, b.idventa,b.seriedocumento, b.numerodocumento, b.fecha, c.nombrecorto,
b.nombrecliente,b.dependencia,f.nombre, b.subdependencia,h.nombre,b.proyecto,g.nombre, a.partida,p.nombre,b.moneda,b.tipocambio
ORDER BY b.tipodocumento, b.fecha
Código SQL:
Ver originalServidor: mensaje 8124, nivel 16, estado 1, línea 1
Se han especificado múltiples columnas en una expresión de agregado que contiene una referencia externa. Si una expresión agregada contiene una referencia externa, ésta deberá ser la única columna a la que se haga referencia en la expresión.
Muchas gracias de antemano.