Ver Mensaje Individual
  #5  
Antiguo 02-05-2011
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Reputación: 19
celades1 Va por buen camino
Hola

No se si lo he entendido bien pero quieres que solo te devuelva un registro con 5 campos

lo haria asi o bien con un procedimiento


Código SQL [-]
select
(select count(rating) from table reviews where idProfessional=2 and rating=1)
as Campo1,
(select count(rating) from table reviews where idProfessional=2 and rating=2)
as Campo2,
(select count(rating) from table reviews where idProfessional=2 and rating=3)
as Campo3,
(select count(rating) from table reviews where idProfessional=2 and rating=4)
as Campo4,
(select count(rating) from table reviews where idProfessional=2 and rating=5)
as Campo5 from rdb$database





pero si lo que quieres es un regitro para cada distinto idprofesional




Código SQL [-]
select idProfessional,campo1,campo2,campo3,campo4,campo5
from (select idProfessional,
sum((select count(rating) from table reviews where idProfessional=r1.idProfessional and rating=1)) as Campo1,
sum((select count(rating) from table reviews where idProfessional=r1.idProfessional and rating=2)) as Campo2,
sum((select count(rating) from table reviews where idProfessional=r1.idProfessional and rating=3)) as Campo3,
sum((select count(rating) from table reviews where idProfessional=r1.idProfessional and rating=4)) as Campo4,
sum((select count(rating) from table reviews where idProfessional=r1.idProfessional and rating=5)) as Campo5,
from reviews r1
group by idProfessional)





Esto es una select from otra select
el sum no hace nada, solo es para que funcione el group by

Puede haber errores de sintaxis pero lo que cuenta es la idea

Saludos
Responder Con Cita