SQL - Multiplicar datos y sumar según id

   
Vista:
Imágen de perfil de Lewis Mora

Multiplicar datos y sumar según id

Publicado por Lewis Mora (2 intervenciones) el 16/10/2017 23:19:18
Buenas tardes. Ok mi pregunta es la siguiente tengo una tabla con 4 columnas documento, grupo, descuento y cantidad. Necesito multiplicar los datos cantidad * descuento y sumar el resultado según grupo, teniendo en cuenta que puedo tener varias filas para un mismo documento, intente hacer lo siguiente:

este me trae solo la suma de una linea en la tabla
1
2
3
4
5
6
select
cantidad * descuento as debito
from
tabla
where fecha='xxxx.xx.xx'
group by grupo


este me trae un monto muy alto.
1
2
3
4
5
6
select
sum(cantidad * descuento) as debito
from
tabla
where fecha='xxxx.xx.xx'
group by grupo

Por favor si me pueden indicar por donde puede estar la solución les agradecería, intente hacer un select anidado pero tampoco me dio resultado.

Como una explicación mas detallada necesito lo siguiente

documento-----cantidad-----descuento-----grupo..........debito(esta no es columna)
01--------------------10---------------50---------------3................500
01---------------------5----------------10---------------3................50
01---------------------2-----------------5----------------2................10

para este documento
debito grupo 3= 550
debito grupo 2= 10

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Multiplicar datos y sumar según id

Publicado por Isaias (1097 intervenciones) el 16/10/2017 23:27:30
Si lo unico que te interesa es POR GRUPO y los demas campos no, entonces

1
2
3
4
select grupo,
sum(cantidad * descuento) as debito
from tutabla
group by grupo

¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lewis

Multiplicar datos y sumar según id

Publicado por Lewis (2 intervenciones) el 17/10/2017 14:54:09
Amigo esa opción ya la utilice es la segunda que coloque arriba, pero no me trae el monto correcto. Gracias por responder.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Multiplicar datos y sumar según id

Publicado por leonardo_josue (1111 intervenciones) el 17/10/2017 15:47:05
Hola Lewis:

1
Amigo esa opción ya la utilice es la segunda que coloque arriba, pero no me trae el monto correcto. Gracias por responder.

¿A qué te refieres con que no la consulta de Isaias no trae el monto correcto?

Con los datos que pones de ejemplo, la consulta funciona y trae los datos que tú mismo estás poniendo como resultado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mysql> SELECT * FROM tabla;
+-----------+----------+-----------+-------+
| documento | cantidad | descuento | grupo |
+-----------+----------+-----------+-------+
| 01        |       10 |        50 |     3 |
| 01        |        5 |        10 |     3 |
| 01        |        2 |         5 |     2 |
+-----------+----------+-----------+-------+
3 rows in set (0.00 sec)
 
mysql> SELECT
    -> grupo, SUM(cantidad * descuento) AS debito
    -> FROM tabla
    -> GROUP BY grupo;
+-------+--------+
| grupo | debito |
+-------+--------+
|     2 |     10 |
|     3 |    550 |
+-------+--------+
2 rows in set (0.00 sec)


Lo cual es consistente con el resultado que tu esperas:

1
2
3
para este documento
debito grupo 3= 550
debito grupo 2= 10

ahora, en tus datos no veo que pongas ninguna fecha, pero según lo que intentaste hacer, estás filtrando por este campo... Tampoco nos dices con qué BD's estás trabajando, pero no recuerdo ninguno que maneje un formato de fechas con puntos, tal como lo estás poniendo. Postea datos "reales" o más cercanos a lo que tienes para ver donde puede estar el problema.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad