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

Sumar campos iguales

Estas en el tema de Sumar campos iguales en el foro de Bases de Datos General en Foros del Web. Hola, ya estuve buscando aqui sobre el problema que me surgio, sin embargo cuando trato de implemetarlo no me funcionan las soluciones aqui dadas. Este ...
  #1 (permalink)  
Antiguo 13/02/2011, 02:04
Avatar de luisec77  
Fecha de Ingreso: mayo-2003
Mensajes: 54
Antigüedad: 21 años
Puntos: 0
Sumar campos iguales

Hola, ya estuve buscando aqui sobre el problema que me surgio, sin embargo cuando trato de implemetarlo no me funcionan las soluciones aqui dadas.

Este es el problema: Tengo una tabla de ventas y quiero saber cuanto vendio cada agente, pero que no haya campos repetidos, sino que los sume. Este es el codigo que implemente:

SELECT DetalleVenta.Cantidad, CatBaterias.Marca &' '& CatBaterias.Tipo AS Articulo
FROM(((Users INNER JOIN Clientes ON Users.Id=Clientes.Representante)INNER JOIN Ventas ON Clientes.IdCliente=Ventas.Cliente)INNER JOIN DetalleVenta ON Ventas.Venta=DetalleVenta.Venta)INNER JOIN CatBaterias ON DetalleVenta.Articulo=CatBaterias.OwnID
WHERE DATEPART('m', Fecha)=2 AND Users.Id=15
ORDER BY CatBaterias.OwnId

Y Me da como reultado lo siguiente:

Cantidad - Articulo
3 - HI-TEC H-22F-550
1 - LTH L-22F-450
1 - LTH L-22F-450
2 - LTH L-22F-450
1 - LTH L-22F-450
1 - LTH L-47-550
3 - LTH L-47-550
4 - LTH L-47-550
1 - LTH L-47-550

Como ven LTH L-22F-450 y LTH L-47-550 se repiten y quisiera que se sumaran.
Aqui hay respuestas que dicen que ponga un codigo parecido a este:

SELECT SUM(Cantidad) AS Cantidad, Descripcion FROM Tabla GROUP BY Descripcion

Claro adaptandolo a mi caso, pero no me funciona y al ponerlo asi:

SELECT SUM(DetalleVenta.Cantidad) AS Total, CatBaterias.Marca &' '& CatBaterias.Tipo AS Articulo
FROM(((Users INNER JOIN Clientes ON Users.Id=Clientes.Representante)INNER JOIN Ventas ON Clientes.IdCliente=Ventas.Cliente)INNER JOIN DetalleVenta ON Ventas.Venta=DetalleVenta.Venta)INNER JOIN CatBaterias ON DetalleVenta.Articulo=CatBaterias.OwnID
WHERE DATEPART('m', Fecha)=2 AND Users.Id=15
GROUP BY Articulo
ORDER BY CatBaterias.OwnId

(Tambien intente cambiando el GROUP BY por: GROUP BY CatBaterias.Marca &' '& CatBaterias.Tipo)

Pero me lanza el siguiente error:

"Ha intentado ejecutar una consulta que no incluye la expresion especificada 'CatBaterias.Marca &' '& CatBaterias.Tipo' como parte de una funcion de agregado"

Estoy usando access (No muy buen DBMS pero la DB ya estaba asi).

de antemano gracias por su ayuda...
  #2 (permalink)  
Antiguo 13/02/2011, 12:18
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, 5 meses
Puntos: 2658
Respuesta: Sumar campos iguales

Cita:
Este es el problema: Tengo una tabla de ventas y quiero saber cuanto vendio cada agente, pero que no haya campos repetidos, sino que los sume. Este es el codigo que implemente:
El problema es que lo que estás planteando no tiene nada que ver con la consulta como la estás escribiendo.
No es lo mismo agrupar por agente que agrupar por ID de cantegoria.
Por otro lado, no puedes, en el agrupamiento en SQL Server o Access poner un campo que no esté afectado por una función agrupada y que no esté en el GROUP BY. Es parte del modelo usado en este caso. Eso lo puedes hacer en MySQL, pero no en Access.

En definitiva, lo que debes aclarar es cómo es la agregación que vas a usar:
- Por marca.
- Por Representante (es lo que dices al principio).
- Por marca y Representante.
- Por Id de producto.

Tal vez:
Código MySQL:
Ver original
  1.     Clientes.Representante,
  2.     CatBaterias.Marca &' '& CatBaterias.Tipo Articulo,
  3.     SUM(DetalleVenta.Cantidad) Total
  4.     Users INNER JOIN Clientes ON Users.Id=Clientes.Representante
  5.     INNER JOIN Ventas ON Clientes.IdCliente=Ventas.Cliente
  6.     INNER JOIN DetalleVenta ON Ventas.Venta=DetalleVenta.Venta
  7.     INNER JOIN CatBaterias ON DetalleVenta.Articulo=CatBaterias.OwnID
  8.     DATEPART('m', Fecha)=2 AND Users.Id=15
  9.     Clientes.Representante, CatBaterias.Marca, CatBaterias.Tipo Articulo
  10.     Total
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/02/2011, 07:46
Avatar de luisec77  
Fecha de Ingreso: mayo-2003
Mensajes: 54
Antigüedad: 21 años
Puntos: 0
Respuesta: Sumar campos iguales

Hola gnzsoloyo ya entendí bien lo que me explicas y entendí el error en el que estaba cayendo, y pues muchas gracias por la explicación y el ejemplo, que en verdad me ayudaron. Saludos y gracias de nuevo.
  #4 (permalink)  
Antiguo 14/02/2011, 08:43
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, 5 meses
Puntos: 2658
Respuesta: Sumar campos iguales

me alegra que te sirviera...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campos, iguales
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 00:22.