SQL - Consulta SQL

 
Vista:

Consulta SQL

Publicado por Eduardo Torres (3 intervenciones) el 27/06/2008 01:54:09
Tengo un problema.. una base de datos con una tabla que se llama Consultas Medicas la cual entre muchas cosas me guarda el Numero De Paciente y la enfermedad que tiene... necesito hacer estadisticas de las enfermedades... pero cada ves que guardo una consulta en mi programa me vuelve a guardar la enfermedad.. Ejemplo:

Eduardo / 25 ago / Artritis
(si se consulto otro dia y aun tiene la misma enfermedad pss se le queda pero es diferente consulta por lo que en la bd se guarda lo mismo)

Eduardo / 30 feb / Artritis

Necesito hacer un Select Que me regrese La Cantidad de Enfermedades que se ha tenido en determinado tiempo... Si intento un Select Count(Enfermedades)
Me regresaria en el ejemplo de arriba 2 veces Artritis... siendo que por paciente deberia de ser una sola ves.. y tmpco puedo poner "where paciente like 'Eduardo" porque solo me regresaria los mios y necesito los de todos... Sin repetir.

Espero y me hayan entendido y me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta SQL

Publicado por pacopaz (143 intervenciones) el 27/06/2008 02:01:32
Puedes probar haciendo primero el filtrado de duplicidad y luego el conteo así:

select
t.Enfermedad,
count(t.Enfermedad)
from
(select distinct p.Nombre, c.Enfermedad from paciente p inner join consulta c on p.IdPaciente = c.IdPaciente where ....) as t
group by
t.Enfermedad

Entiendo que no son los nombres de los campos ni de las tablas, pero supongo que entiendes la lógica.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL

Publicado por Eduardo Torres (3 intervenciones) el 27/06/2008 02:14:29
Pero... TEngop todo en la misma Tabla...

Mira Mi tabla Se llama ConsultasMedicas.. los Campos son ... Paciente, Fecha, Sintomas, Enfermedad.. Etc.

Entonces lo que yo ocupo obtener es el numero de veces que la enfermedad se ha repetido.. pero como te mencione anteriormente mi programa guarda a un paciente con la misma enfermedad varias veces. lo que necesito es algo asi como

Enfermedad / Cantidad

Cancer 15
Gripè 30
etc.

Pero si es el ejemplo del cancer.. pss puede consultarse varias veces y tendra lo mismo..
por lo que lo que quiero obtener es "la suma" de las enfermedades. pero sin repetirse por pacientes. tu ejemplo mas o menos lo entendi pero ahi juntas 2 tablas y yo tengo todo en lamisma, a parte no se que me quisiste dar a entender con C(campo), t(tabla) pero p no supe que era ..disculpa. ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL

Publicado por pacopaz (143 intervenciones) el 27/06/2008 17:01:21
Bueno, creo que de la solución que te ofrecí se puede leer la alternativa que puedes ocupar para tus requerimientos, pero como sea, aquí está:

select
t.Enfermedad,
count(t.Enfermedad)
from
(select distinct c.Paciente, c.Enfermedad from consulta c where ....) as t
group by
t.Enfermedad

Los puntos suspensivos son para que definas filtros para la consulta: Rangos de Fechas, etc. Si no ocupas hacer eso, habrá que borrar desde antes del where y hasta antes del paréntesis.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL

Publicado por Eduardo Torres (3 intervenciones) el 28/06/2008 00:25:37
Al fin lo logre... Gracias a tu ayuda me di una idea de como se podia hacer....
mi consulta al final termino asii

SELECT Count(Distinct Paciente) AS EXPR1
FROM ConsultasMedicas
WHERE (Enfermedad IN
(SELECT DISTINCT Enfermedad AS EXPR1
FROM ConsultasMedicas AS ConsultasMedicas_1
WHERE (Enfermedad LIKE @enf)))

Muchas GRacias PacoPaz Por Tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar