Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Error en consulta con función SUM

Estas en el tema de Error en consulta con función SUM en el foro de Bases de Datos General en Foros del Web. Hola amigos, Alguién podría ayudarme a ver cual es el error en esta consulta sQL: SELECT tienda_compradores.FlatRate, SUM(tienda_compradores_productos.Precio_Final),SUM (tienda_compradores_productos.Impuesto) FROM (tienda_compradores LEFT JOIN tienda_compradores_productos ON ...
  #1 (permalink)  
Antiguo 14/04/2009, 12:59
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Error en consulta con función SUM

Hola amigos,

Alguién podría ayudarme a ver cual es el error en esta consulta sQL:

SELECT tienda_compradores.FlatRate, SUM(tienda_compradores_productos.Precio_Final),SUM (tienda_compradores_productos.Impuesto) FROM (tienda_compradores LEFT JOIN tienda_compradores_productos ON tienda_compradores_productos.Id_pedido = tienda_compradores.Id_pedido) WHERE tienda_compradores.Id_pedido = 28


Me tiene totalmente despisatdo y da este error:

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'FlatRate' as part of an aggregate function.

Gracias de antemano
  #2 (permalink)  
Antiguo 14/04/2009, 13:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 6 meses
Puntos: 2658
Respuesta: Error en consulta con función SUM

Código SQL:
Ver original
  1. SELECT
  2.     TC.FlatRate,
  3.     SUM(TCP.Precio_Final),
  4.     SUM (TCP.Impuesto)
  5. FROM tienda_compradores TC LEFT JOIN tienda_compradores_productos TCP
  6.     ON TCP.Id_pedido = TC.Id_pedido
  7. WHERE TC.Id_pedido = 28

Los paréntesis no van. Cuando usas paréntesis en una cláusula FROM, lo que va dentro debe ser si o si una subconsulta que genere una tabla derivada. Lo que debía ir en todo caso sería algo así:
Código SQL:
Ver original
  1. SELECT
  2.     T1.FlatRate,
  3.     SUM(T1.Precio_Final),
  4.     SUM (T1.Impuesto)
  5. FROM
  6.     (SELECT *
  7.     FROM tienda_compradores TC LEFT JOIN tienda_compradores_productos TCP
  8.         ON TCP.Id_pedido = TC.Id_pedido
  9.     WHERE tienda_compradores.Id_pedido = 28) T1

Tip: Trata de usar alias, como en mi ejemplo. nombres tan largos de tablas o bases son propensos a los errores de tipeo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:49.