Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2012, 16:36
Avatar de vidalsoft
vidalsoft
 
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Se han especificado múltiples columnas en una expresión de agregado que contiene una

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 original
  1. SELECT b.idventa,b.fecha, b.tipodocumento, c.nombrecorto, rtrim(b.seriedocumento)+'-'+b.numerodocumento nrodoc,
  2. 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,
  3. 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,
  4. 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,
  5. DATEDIFF(dd,b.fecha,'Abr 24 2012 12:00AM') AS dias
  6. FROM re_ventadetalle a LEFT OUTER JOIN re_venta b ON a.idventa=b.idventa  
  7. LEFT OUTER JOIN si_tipodocumento c ON b.tipodocumento=c.idtipodocumento
  8. LEFT OUTER JOIN si_moneda d ON b.moneda=d.idmoneda
  9. LEFT OUTER JOIN te_partida p ON a.partida=p.codigo
  10. LEFT OUTER JOIN si_fuentefinanciamiento e ON p.fuentefinanciamiento=e.codigofuente
  11. LEFT OUTER JOIN si_dependencia f ON b.dependencia=f.codigo
  12. LEFT OUTER JOIN si_subdependencia h ON b.subdependencia=h.codigo
  13. LEFT OUTER JOIN si_proyecto g ON (b.proyecto=g.codigo AND b.dependencia=g.dependencia)  
  14.  WHERE  b.estado IN (2)  AND  b.tipodocumento IN (1) AND
  15.  b.fecha <= 'Abr 24 2012 12:00AM'
  16.  AND b.moneda='2' GROUP BY  b.tipodocumento, b.idventa,b.seriedocumento, b.numerodocumento, b.fecha, c.nombrecorto,
  17. b.nombrecliente,b.dependencia,f.nombre, b.subdependencia,h.nombre,b.proyecto,g.nombre, a.partida,p.nombre,b.moneda,b.tipocambio
  18.  ORDER BY b.tipodocumento, b.fecha

Código SQL:
Ver original
  1. Servidor: mensaje 8124, nivel 16, estado 1, línea 1
  2. 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.
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]