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

Suma con "if"

Estas en el tema de Suma con "if" en el foro de Mysql en Foros del Web. Hola soy muy nuevo en esto de sql, necesito ver si me ayudan con esta operació, espero explicarme. Tengo una tabla de nombre "puntaje" con ...
  #1 (permalink)  
Antiguo 01/08/2012, 08:59
Avatar de Legend_Mau  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Suma con "if"

Hola soy muy nuevo en esto de sql, necesito ver si me ayudan con esta operació, espero explicarme.

Tengo una tabla de nombre "puntaje" con los siguientes datos:

nom_usuario puntos
juanito 8
pepito 2
juanito 9
pepito 1
juanito 4
pepito 3

Y otra tabla de nombre "sumatorias" con los campo "suma_juanito" y "suma_pepito"

Lo que quiero que hacer es que sume los puntos de juanito y de pepito por separado y que el resultado respectivo de cada quien lo mande a la tabla "sumatorias" en su respectivo campo.

Espero hacerme entender un poco. Creo es mi segundo post y la verdad en el primero no me fue muy bien

Saludos, gracias.
  #2 (permalink)  
Antiguo 01/08/2012, 09:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Suma con "if"

Legend_Mau,
tú tienes esto
Cita:
nom_usuario puntos
juanito 8
pepito 2
juanito 9
pepito 1
juanito 4
pepito 3
Creo que no te hace falta cargar sumatorias generales que puedes sacar en cada ocasión según necesidad con estas consultas. ¿Para qué guardarlas si son fáciles de obtener mediante consultas? Mantener esa otra consulta te supone una consulta de actualización en cada ocasión que realices un cambio o añadas un dato, y controlar si existe o no un valor para el usuario cuyo dato quieres insertar o actualizar...

Código MySQL:
Ver original
  1. SELECT nom_usuario, sum(puntos) totjuanito
  2.  FROM tutabla
  3.  WHERE nom_usuario = 'juanito'
  4.  GROUP BY nom_usuario
Código MySQL:
Ver original
  1. SELECT nom_usuario, sum(puntos) totpepito
  2.  FROM tutabla
  3.  WHERE nom_usuario = 'pepito'
  4.  GROUP BY nom_usuario
Prueba y nos dices.
Por otra parte, tienes que decirnos si ya existe en esa tabla de sumatorias el registro para cada uno de ellos. Piensa que si no existe, hay que usar INSERT, pero si ya existe, hay que usar UPDATE
  #3 (permalink)  
Antiguo 01/08/2012, 10:13
Avatar de Legend_Mau  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Suma con "if"

El código me resulto muy bien...

Explico un poco más a detalle lo que estoy haciendo.

Estoy haciendo una página de consulta en PHP con tablas dinámicas, en ella muestra ciertos datos que tengo almacenados en una BD de un cierto usuario llámese "juanito".

La idea principal es que me muestre la suma total de todos los puntos de "juanito" en dicha página.

La idea que tenía no es por PHP, sino por SQL a lo que voy es que, quería guardar la suma del campo "puntos" tabla de la tabla "puntaje" en otra tabla con el nombre "sumatoria" y dentro hay un campo que se llama "sumjuanito" donde quería almacenar esa suma total de puntos de juanito.

Posteriormente mandar a llamar desde PHP el campo "sumjuanito y mostrarla.

Espero no explicar tan enredado, gracias por la respuesta anterior!! ;)
  #4 (permalink)  
Antiguo 13/08/2012, 04:29
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Suma con "if"

Legend_Mau,
existe una regla en las bases de datos que recomienda no almacenar valores calculados, y ese sumatorio para el que quieres emplear una columna y toda la programación para mantenerlo y actualizarlo es un valor calculado que puedes calcular en cualquier momento y además fácilmente.
  #5 (permalink)  
Antiguo 14/08/2012, 07:02
Avatar de Legend_Mau  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Suma con "if"

Cita:
Iniciado por jurena Ver Mensaje
Legend_Mau,
existe una regla en las bases de datos que recomienda no almacenar valores calculados, y ese sumatorio para el que quieres emplear una columna y toda la programación para mantenerlo y actualizarlo es un valor calculado que puedes calcular en cualquier momento y además fácilmente.
y CUÁL ES ESA MANERA FÁCIL, ME PODRÍAS ORIENTAR POR FAVOR?

SALUDOS
  #6 (permalink)  
Antiguo 14/08/2012, 07:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Suma con "if"

No tienes por qué tener un campo para la suma y hacer operaciones de inserción y actualización sobre él. Te bastará con buscar con las siguientes consultas. Para sacar todos los usuarios con sus puntuaciones
SELECT nom_usuario, sum(puntos) totusuario
FROM puntaje
GROUP BY nom_usuario ORDER BY totusuario DESC, nom_usuario

Y si quieres el de un usuario concreto
SELECT nom_usuario, sum(puntos) totusuarioconcreto
FROM puntaje
WHERE nom_usuario = @nombreusuario
GROUP BY nom_usuario

donde @nombreusuario sería el nombre de usuario cuya puntuación quieres sacar. Y no hay más que hacer...
  #7 (permalink)  
Antiguo 05/02/2013, 10:03
Avatar de Legend_Mau  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Suma con "if"

Cita:
Iniciado por jurena Ver Mensaje
No tienes por qué tener un campo para la suma y hacer operaciones de inserción y actualización sobre él. Te bastará con buscar con las siguientes consultas. Para sacar todos los usuarios con sus puntuaciones
SELECT nom_usuario, sum(puntos) totusuario
FROM puntaje
GROUP BY nom_usuario ORDER BY totusuario DESC, nom_usuario

Y si quieres el de un usuario concreto
SELECT nom_usuario, sum(puntos) totusuarioconcreto
FROM puntaje
WHERE nom_usuario = @nombreusuario
GROUP BY nom_usuario

donde @nombreusuario sería el nombre de usuario cuya puntuación quieres sacar. Y no hay más que hacer...
Siento dejarlo por la paz por un ratote pero tuve muchas otras cosas que me impidieron regresar a esto y solo quiero retomarlo para finalizar.

Me sirvio muy bien este código pero para mostrarlo en PHP como debo de mostrar el usuario en concreto si este traigo arrastrando desde una "x" variable desde el login de mi página y quiero que en la página de la suma me muestre el usuario en concreto?

cómo puedo mostrarlo??

Saludos.

Etiquetas: sql
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 12:11.