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

Problema con Consulta SQL

Estas en el tema de Problema con Consulta SQL en el foro de SQL Server en Foros del Web. Tengo que mostrar los pacientes con cáncer, lo que pasa es que me muestra cada paciente con cancer 40 veces... no se xq, he aqui ...
  #1 (permalink)  
Antiguo 26/01/2009, 12:02
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Problema con Consulta SQL

Tengo que mostrar los pacientes con cáncer, lo que pasa es que me muestra cada paciente con cancer 40 veces... no se xq, he aqui la instruccion

SELECT B.Nombre, C.Nombre, A.Fecha
FROM Paciente AS B,Enfermedad AS C, Expedientes AS A
Where C.Nombre = 'Cancer'
  #2 (permalink)  
Antiguo 26/01/2009, 12:11
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Problema con Consulta SQL

De que forma se relacionan las tablas Paciente, Enfermedad y Expedientes...

cuales serian las llaves para encadenarlos..

Lo que sucede es que estas haciendo un producto cartesiano entre las tablas, por eso te sale repetido, debes indicar las llaves..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 26/01/2009, 12:15
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con Consulta SQL

Cita:
Iniciado por Andres95 Ver Mensaje
De que forma se relacionan las tablas Paciente, Enfermedad y Expedientes...

cuales serian las llaves para encadenarlos..

Lo que sucede es que estas haciendo un producto cartesiano entre las tablas, por eso te sale repetido, debes indicar las llaves..

Saludos!
Mira asi estan
Tablas

Expedientes (ID_Expediente, ID_Paciente, ID_Familiar, ID_Enfermedad, Diagnostico, Fecha)

Paciente(ID_Paciente, Nombre, Edad, Genero)

Enfermedad(ID_Enfermedad, Nombre)

Familiar(ID_Familiar, Nombre, Edad, Telefono, Email)

Todas las llaves primarias estan relacionadas con la tabla Expediente.
  #4 (permalink)  
Antiguo 26/01/2009, 12:39
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Problema con Consulta SQL

Suponiendo que un paciente puede tener mas de un expediente, ya que id paciente no es la llave primaria en Expendiente, lo agrupe y obtuve la ultima fecha.

Código:
SELECT P.Nombre
      ,E.Nombre
      ,Max(X.Fecha) 
FROM Paciente AS P
Inner join Expedientes AS X ON P.Id_Paciente = X.ID_Paciente
Inner join Enfermedad AS E ON X.ID_Enfermedad = E.ID_Enfermedad
Where C.Nombre = 'Cancer' 
Group by P.Nombre, E.Nombre
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 26/01/2009 a las 13:33
  #5 (permalink)  
Antiguo 26/01/2009, 12:48
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con Consulta SQL

Cita:
Iniciado por Andres95 Ver Mensaje
Suponiendo que un paciente puede tener mas de un expediente, ya que id paciente no es la llame primaria en Expendiente, lo agrupe y obtuve la ultima fecha.

Código:
SELECT P.Nombre
      ,E.Nombre
      ,Max(X.Fecha) 
FROM Paciente AS P
Inner join Expedientes AS X ON P.Id_Paciente = X.ID_Paciente
Inner join Enfermedad AS E ON X.ID_Enfermedad = E.ID_Enfermedad
Where C.Nombre = 'Cancer' 
Group by P.Nombre, E.Nombre
Saludos!
Perfecto, muchas gracias, y si por ejemplo solo quiero los pacientes de cancer solo en el primer mes? Estoy poniendolo en un Where pero no me muestra nada.
  #6 (permalink)  
Antiguo 26/01/2009, 13:32
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Problema con Consulta SQL

muestranos tu code..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #7 (permalink)  
Antiguo 26/01/2009, 13:32
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con Consulta SQL

Cita:
Iniciado por Lockd Ver Mensaje
Perfecto, muchas gracias, y si por ejemplo solo quiero los pacientes de cancer solo en el primer mes? Estoy poniendolo en un Where pero no me muestra nada.
Ya lo resolvi, ya esta. Gracias, x la ayuda!!
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 22:17.