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

consulta para contar mensajes

Estas en el tema de consulta para contar mensajes en el foro de Bases de Datos General en Foros del Web. hola foro: en sql server 2005 como puedo tener un select que me muestre el total de mesajes de un usuario y el total de ...
  #1 (permalink)  
Antiguo 19/11/2009, 07:50
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 16 años, 7 meses
Puntos: 10
consulta para contar mensajes

hola foro:

en sql server 2005 como puedo tener un select que me muestre el total de mesajes de un usuario y el total de mensajes nuevos sabiendo q la tabla mensajes tiene un campo msj_leido con el valor 's' o 'n'?

algo como

select count(*), sum(if(msj_leido='n',1,0)) from mensajes..... ????

gracias
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
  #2 (permalink)  
Antiguo 19/11/2009, 08:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: consulta para contar mensajes

Suponiendo que la tabla mensajes tiene el id del usuario, tienes

Código sql:
Ver original
  1. SELECT COUNT(*), SUM(IF(msj_leido='n',1,0)) FROM mensajes WHERE idUsuario=X

esto da los mensajes del usuario X

Código sql:
Ver original
  1. SELECT idUsuario, COUNT(*), SUM(IF(msj_leido='n',1,0)) FROM mensajes GROUP BY idUsuario

esto da el conteo para cada usuario....

(habria que hacer un join con la tabla usuarios para poder mostrar el nombre del usuario)


sum(if(msj_leido='n',1,0)) esto en mysql funciona en sql server 2005 tendras que busacar el equivalente para la funcion if (Iif() quizas...)

Quim
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:25.