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

Contar en un select

Estas en el tema de Contar en un select en el foro de Mysql en Foros del Web. LES PLANTEO EL PROBLEMA, TENGO LA SIGUIENTE SENTENCIA select muestra_examen.id_examen, descripcionmuestra.id_recurso, concat(recursominsa.nombres,' ', recursominsa.apellido1) as nombre_recurso, exploracion_examen.id_pos_resultado from descripcionmuestra inner join muestra_examen on muestra_examen.id_muestra = ...
  #1 (permalink)  
Antiguo 18/03/2010, 20:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 26
Antigüedad: 14 años, 1 mes
Puntos: 0
Contar en un select

LES PLANTEO EL PROBLEMA, TENGO LA SIGUIENTE SENTENCIA

select muestra_examen.id_examen, descripcionmuestra.id_recurso,
concat(recursominsa.nombres,' ', recursominsa.apellido1) as nombre_recurso, exploracion_examen.id_pos_resultado
from descripcionmuestra inner join muestra_examen on muestra_examen.id_muestra = descripcionmuestra.id_muestra
INNER JOIN recursominsa ON descripcionmuestra.`id_recurso` = recursominsa.`id_recurso`
inner join exploracion_examen on exploracion_examen.id_examen = muestra_examen.id_examen
where exploracion_examen.id_exploracion = 50
group by muestra_examen.id_examen


LA CUAL ME DA EL SIGUIENTE RESULTADO
Id_ex--Id_rec-------Nombre_recurso--------------Frotis_adecuado
BO2-----BO001-----Ricardo Vargas-----------------------172
BO3-----BO002-----Maria Teresa Suárez Bolaños-----169
BO4-----BO002-----Maria Teresa Suárez Bolaños-----172
BO5-----BO001-----Ricardo Vargas-----------------------168
BO6-----BO002-----Maria Teresa Suárez Bolaños-----168
BO7-----BO001-----Ricardo Vargas-----------------------169


LO QUE KIERO HACER ES POR EJEMPLO: TENGO A LA PERSONA DEL CODIGO BO002 KIERO SABER CUANTOS frotis tomo esa persona, en este ejemplo seria 3, ademas de eso kiero saber cuantos de tiene de 172, de 169 y de 168, y ademas de eso sacar un porcentaje de ello, alguien sabe como, su ayuda me serviria mucho, porfavor.
  #2 (permalink)  
Antiguo 19/03/2010, 03:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Contar en un select

El dato base lo puedes obtner de la siguiente manera


Código MySQL:
Ver original
  1. SELECT Id_rec,Nombre_recurso,Frotis_adecuado,count(*) as Numero
  2. from tutabla
  3. group by Id_rec,Nombre_recurso,Frotis_adecuado;


Con esta consulta obtienes laveces que cada persona a tomado cada tipo de "Frotis_adecuado".

Para los porcentages y otros datos te aconsejo que trabjes los datos en el leguaje externo que uses ... para sacarlos con SQL seria muy complicado.


Quim

Código MySQL:
Ver original
  1. SELECT Id_rec,Nombre_recurso,count(*) as Numero
  2. from tutabla
  3. group by Id_rec,Nombre_recurso;

esta te da el total sin tipos...
  #3 (permalink)  
Antiguo 19/03/2010, 09:39
 
Fecha de Ingreso: marzo-2010
Mensajes: 26
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Contar en un select

Muchas gracias esa sentencias me ayudan pero como podria hacer para unir el total de todo con lo otro, hay una forma
  #4 (permalink)  
Antiguo 23/03/2010, 02:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Contar en un select

Si pero creo que no te servirá

Código MySQL:
Ver original
  1. SELECT SuperC.Id_rec,
  2.              SuperC.Nombre_recurso,
  3.              SuperC.Frotis_adecuado,
  4.              SuperC.Numero
  5. FROM(SELECT t1.Id_rec,
  6.                        t1.Nombre_recurso,
  7.                        t1.Frotis_adecuado,
  8.                        count(*) as Numero
  9.            FROM tutabla t1
  10.            GROUP BY t1.Id_rec,
  11.                             t1.Nombre_recurso,
  12.                             t1.Frotis_adecuado
  13.           UNION ALL
  14.           SELECT SbC.Id_rec,
  15.                        SbC.Nombre_recurso,
  16.                        "TOTAL" as Frotis_adecuado,
  17.                        SbC.Numero
  18.           FROM (SELECT t2.Id_rec,
  19.                                   t2.Nombre_recurso,
  20.                                   count(*) as Numero
  21.                       FROM tutabla t2
  22.                       GROUP BY t2.Id_rec,
  23.                                        t2.Nombre_recurso
  24.                      ) as SbC
  25.            ) as SuperC
  26. ORDER BY SuperC.Nombre_recurso,
  27.                  SuperC.Frotis_adecuado;


Que tal?

Primero se igualan el numero de campos de las dos consultas del mail anterior, agregando una constante ("Total") el el lugar del el Fortis_adecuado a la segunda.

Luego se unen con UNION ALL.

Finalmente como UNION ALL no respeta el orden, se hace una "super" consulta de la union para ordenar...

Quim

Etiquetas: contar, select
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 21:20.