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

Sumar 2 campos y mostrar el valor mayor

Estas en el tema de Sumar 2 campos y mostrar el valor mayor en el foro de Mysql en Foros del Web. Buenas Noches Amigos, He buscado por toda la web como sumar dos campos desde una consulta mysql, y ya se como hacerlo con SUM SUM(campo1+campo2) ...
  #1 (permalink)  
Antiguo 21/10/2011, 01:59
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 16 años, 2 meses
Puntos: 2
Sumar 2 campos y mostrar el valor mayor

Buenas Noches Amigos,

He buscado por toda la web como sumar dos campos desde una consulta mysql, y ya se como hacerlo con SUM

SUM(campo1+campo2)

Si embargo necesito sumar 2 campos y traer el valor mas alto, lo que he estado probando con el LIMIT 1, sin embargo no hace efectivamente lo que requiero :s


Como puedo sumar 2 campos de varios registros y que me muestre cual es el numero mayor.

Ejemplo:

Tengo una tabla

puntos1 puntos2 jugador fecha
400 40 joel 19/10/2011
100 20 jose 19/10/2011
60 100 pepe 19/10/2011
120 10 jaime 19/10/2011


Necesito sumar los puntos de cada jugador, SUM(puntos1+puntos2) y quiero que muestre el valor, y que la consulta lo ordene de mayor a menor

Ejemplo, segun la tabla el que debe estar de primero es el jugador:
joel con 440 puntos
pepe con 160 puntos
jaime con 140 puntos
jose con 120 puntos

Alguien podria orientarme :(
__________________
Ing. Joel Luis
www.sidedesigne.com.ve
+58 426 3362137
BB 24AF8F04
  #2 (permalink)  
Antiguo 21/10/2011, 03:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Sumar 2 campos y mostrar el valor mayor

SELECT jugador, (puntos1 + puntos2) totalpuntos FROM tutabla ORDER BY totalpuntos DESC
  #3 (permalink)  
Antiguo 21/10/2011, 10:51
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Sumar 2 campos y mostrar el valor mayor

Cita:
Iniciado por jurena Ver Mensaje
SELECT jugador, (puntos1 + puntos2) totalpuntos FROM tutabla ORDER BY totalpuntos DESC
Gracias por tu ayuda amigo :)

Pero me da error, por yo no tengo una variable total para hace esa suma, osea en la base de datos no hay una variable total, y no puedo agregarle esa variable por la base de datos no la puedo tocar, esa base de datos es administrada por un equipo de mi trabajo y no quiere modificar la base de datos, y bueno yo la estoy montando en php.

Como podria hacer alli :S

Gracias
__________________
Ing. Joel Luis
www.sidedesigne.com.ve
+58 426 3362137
BB 24AF8F04
  #4 (permalink)  
Antiguo 21/10/2011, 10:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Sumar 2 campos y mostrar el valor mayor

Es que no hay una variable totalpuntos, sino un alias totalpuntos en el que se guardan sumados los valores de los campos donde guradas puntos1 y puntos 2. Ese alias no es un campo real sino que genera en el select y te sirve para ordenar.


SELECT jugador, (puntos1 + puntos2) totalpuntos FROM tutabla ORDER BY totalpuntos DESC

Dinos cómo se llaman tus campos y tu tabla y te propondremos la sintaxis
  #5 (permalink)  
Antiguo 21/10/2011, 11:07
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Sumar 2 campos y mostrar el valor mayor

Hola joelluis17:

La consulta que te propone jurena funciona correctamente, checa este script

Código MySQL:
Ver original
  1. mysql> CREATE TABLE TuTabla (puntos1 INT, puntos2 INT,
  2.     -> jugador VARCHAR(10), fecha DATE);
  3. Query OK, 0 rows affected (0.09 sec)
  4.  
  5. mysql> INSERT INTO TuTabla VALUES
  6.     -> (400, 40, 'joel', '2011-10-19'), (100, 20, 'jose', '2011-10-19'),
  7.     -> (60, 100, 'pepe', '2011-10-19'), (120, 10, 'jaime', '2011-10-19');
  8. Query OK, 4 rows affected (0.05 sec)
  9. Records: 4  Duplicates: 0  Warnings: 0
  10.  
  11. mysql> SELECT * FROM tuTabla;
  12. +---------+---------+---------+------------+
  13. | puntos1 | puntos2 | jugador | fecha      |
  14. +---------+---------+---------+------------+
  15. |     400 |      40 | joel    | 2011-10-19 |
  16. |     100 |      20 | jose    | 2011-10-19 |
  17. |      60 |     100 | pepe    | 2011-10-19 |
  18. |     120 |      10 | jaime   | 2011-10-19 |
  19. +---------+---------+---------+------------+
  20. 4 rows in set (0.00 sec)
  21.  
  22. mysql> SELECT jugador, (puntos1 + puntos2) totalpuntos FROM tutabla
  23.     -> ORDER BY totalpuntos DESC;
  24. +---------+-------------+
  25. | jugador | totalpuntos |
  26. +---------+-------------+
  27. | joel    |         440 |
  28. | pepe    |         160 |
  29. | jaime   |         130 |
  30. | jose    |         120 |
  31. +---------+-------------+
  32. 4 rows in set (0.00 sec)

Tal y como lo menciona totalpuntos es un alias que tu asignas de manera arbitraria a tu campo calculado:

Código:
(puntos1 + puntos2) totalpuntos 
También podrías poner a posición de la columna en el ORDEN BY, para no tener que manejar nombres:

Código MySQL:
Ver original
  1. mysql> SELECT jugador, (puntos1 + puntos2) totalpuntos FROM tutabla
  2.     -> ORDER BY 2 DESC;
  3. +---------+-------------+
  4. | jugador | totalpuntos |
  5. +---------+-------------+
  6. | joel    |         440 |
  7. | pepe    |         160 |
  8. | jaime   |         130 |
  9. | jose    |         120 |
  10. +---------+-------------+
  11. 4 rows in set (0.01 sec)

Sería conveniente que nos pusieras exactamente el código del error y la descripción que te está arrojando la consulta, porque es posible que se trate de otra cosa diferente a la consulta.

Saludos
Leo.
  #6 (permalink)  
Antiguo 21/10/2011, 14:57
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Sumar 2 campos y mostrar el valor mayor

Buenas Tardes Amigos,

Gracias por su ayuda a ambos, funciono perfectamente :)

Ahora me sale otra duda, como podria sacar el promedio de esa suma de los campos PUNTOS1+PUNTOS2 por jugador entre 2 fechas?

Me explico mejor:

Necesito sacar la media entre esa suma y entre 2 fecha (en realidad son 2 hora)

La hora en la base de datos se expresa asi:

20/10/2011 17:00
20/10/2011 18:00
20/10/2011 19:00
etc
etc

Quiero sacar el promedio de los PUNTOS1,PUNTOS2 de cada jugador entre 2 fecha.

Yo estoy usando BETWEEN para buscar en la base de datos desde ejemplo:

20/10/2011 17:00 hasta las 20/10/201 18:00 (fecha between $fecha1 and $fecha2)
__________________
Ing. Joel Luis
www.sidedesigne.com.ve
+58 426 3362137
BB 24AF8F04
  #7 (permalink)  
Antiguo 24/10/2011, 07:55
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Sumar 2 campos y mostrar el valor mayor

Hola de nuevo joelluis17:

Para la obtención de promedios utilizas la función AVG(), la cual en conjunto con la cláusula GROUP BY te da exactamente lo que necesitas. Investiga un poco acerca de cómo se usa esta función. Si continuas con problemas pones algo del código que intentaste hacer y te ayudamos a corregirlo.

Saludos
Leo.

Etiquetas: campos, mayor, registros, sql, tabla
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 07:47.