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

Select con SUM

Estas en el tema de Select con SUM en el foro de Bases de Datos General en Foros del Web. Kisiera saber a ver si ustedes detectan el ERROR.. Tengo un select, que funciona bien cuando en la tabla USUARIO_VENTAS tiene registros sobre el usuario ...
  #1 (permalink)  
Antiguo 04/11/2004, 08:20
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Exclamación Select con SUM

Kisiera saber a ver si ustedes detectan el ERROR..
Tengo un select, que funciona bien cuando en la tabla USUARIO_VENTAS tiene registros sobre el usuario que se encuantra en la TABLA USUARIO.
Si en la tabla USUARIOS VENTAS, no hay registros, no me funciona el SELECT.

Se tienen que listar de las 2 maneras, ya que quiero listar los datos del usuario, y ademas agregar los datos de sus ventas.

Aqui les paso el select:

Código PHP:
SELECT DISTINCT(u.usuario_id), 
SUM( IF(u.usuario_id=uv.usuario_id && uv.venta_estado=110)) AS ventas
FROM usuarios u
usuario_ventas uv 
WHERE u
.usuario_estado='2' and u.usuario_id=uv.usuario_id 
GROUP BY u
.usuario_id ORDER BY u.usuario_id DESC 
__________________
Saludos :adios: :adios: :adios:

Última edición por granbosteron; 04/11/2004 a las 08:54
  #2 (permalink)  
Antiguo 04/11/2004, 09:11
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
a que te refieres con "no funciona", da algun error? o no muestra registros?
  #3 (permalink)  
Antiguo 04/11/2004, 09:23
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
No muestra registros, no tira error, el select esta bien.

Yo lo que quiero, es que me liste los usuarios, sin importar que haya registros en la TABLA VENTAS, pero si hay, que los sume.
__________________
Saludos :adios: :adios: :adios:
  #4 (permalink)  
Antiguo 04/11/2004, 09:27
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
prueba esto:

SELECT DISTINCT(u.usuario_id),
SUM( IF(u.usuario_id=uv.usuario_id && uv.venta_estado=1, 1, 0)) AS ventas
FROM usuarios u RIGHT JOIN usuario_ventas uv
ON u.usuario_id=uv.usuario_id
WHERE u.usuario_estado='2' and
GROUP BY u.usuario_id ORDER BY u.usuario_id DESC
  #5 (permalink)  
Antiguo 04/11/2004, 09:39
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Nop, sigue haciendo lo mismo. Solo me lista USUARIOS si es que figuran registros de los mismos en la TABLA VENTAS, o sea ventas de esos usuarios.

Los usuarios que no vendieron todavia, no me lista ninguno.
__________________
Saludos :adios: :adios: :adios:
  #6 (permalink)  
Antiguo 04/11/2004, 09:42
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
prueba con LEFT JOIN en lugar de RIGHT JOIN
  #7 (permalink)  
Antiguo 04/11/2004, 09:47
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
GRANDE CLAUDIO, sos un master.

Anda joya, muchisimas gracias por tu ayuda, me fue muy util.

__________________
Saludos :adios: :adios: :adios:
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 19:39.