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

Problema con Base de datos

Estas en el tema de Problema con Base de datos en el foro de SQL Server en Foros del Web. Que tal! Tengo un problema con una base datos, especificamente con una relacion y unas constultas. Me explico. Tengo una tabla llamada EMPRESAS y otra ...
  #1 (permalink)  
Antiguo 27/05/2008, 09:26
 
Fecha de Ingreso: abril-2008
Ubicación: Santo Domingo, Republica Dominicana
Mensajes: 53
Antigüedad: 16 años
Puntos: 0
Información Problema con Base de datos

Que tal!

Tengo un problema con una base datos, especificamente con una relacion y unas constultas. Me explico.

Tengo una tabla llamada EMPRESAS y otra llamada PERSONAS. Otra tabla llamada REGISTROS que es la relación entre PERSONAS Y EMPRESAS.

De la tabla REGISTROS, cada registro corresponde a un numero de personas que son socios de una determinada empresa, donde cada empresa cuenta con 6 socios.

Como saben. Cada persona tiene un ID, al igual que cada empresa. Lo que suscede es que en la tabla REGISTROS aparecen campos del IDPersonas y/o el IDEmpresas como NULL. Se supone que no debe ser así porque los datos porvienen de las tablas PERSONAS y EMPRESAS, en las cuales todo está normal.

Yo pienso que al relacionar mas 6 Personas con una solo Empresa, pues no debe salir el IDPersonas en registros, debido a que no es una sino muchas personas.

Pero, cómo puedo entonces consultar todas las personas que están asociadas a una empresa específica, o a qué empresa está asociada una persona, si en la tabla Registros me aparece el campo IDPersona como NULL o el campo EmpresaID como NULL? ? ? ?


ALGUNA SUGERENCIA ? ? ?



Gracias de antemano...
  #2 (permalink)  
Antiguo 27/05/2008, 13:46
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: Problema con Base de datos

Entiendo esto:

Tabla_empresa[IdEmpresa - NombreEmpresa]:
1 - Empresa1
2 - Empresa2
3 - Empresa3

Tabla_persona[IdPersona - NombrePersona]:
1 - Persona1
2 - Persona2
3 - Persona3

Tabla_Registro[IdEmpresa - IdPersona]:
1 - 1
1 - Null
2 - 3
3 -1
3 - Null
Null - 1
Null - 2
Null - Null

Para saber las personas por una empresa:

SELECT TP.NombrePersona
FROM Tabla_persona TP INNER JOIN Tabla_Registro TR
ON TP.IdPersona = TR.IdPersona
WHERE TR.IdPersona IS NOT NULL

Para saber las personas por una empresa:

SELECT TP.NombrePersona
FROM Tabla_persona TP INNER JOIN Tabla_Registro TR
ON TP.IdPersona = TR.IdPersona
WHERE TR.IdPersona IS NOT NULL AND
TR.IdEmpresa = ?????

Para saber las empresa por una persona:

SELECT TP.NombreEmpresa
FROM Tabla_empresa TP INNER JOIN Tabla_Registro TR
ON TP.IdEmpresa = TR.IdEmpresa
WHERE TR.IdEmpresa IS NOT NULL AND
TR.IdPersona= ?????

Saludos
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #3 (permalink)  
Antiguo 28/05/2008, 10:45
 
Fecha de Ingreso: abril-2008
Ubicación: Santo Domingo, Republica Dominicana
Mensajes: 53
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con Base de datos

Gracias por la ayuda...

Pero, como antes, solo puedo ver la información (las personas asociadas a una empresa y/o las empresas de la cual una persona es socio), de los campos en los que IdPersona y IdEmpresa no estan NULL.

Pero aún sigue el problema, porque, de 63000 registros de la tabla REGISTROS solo 6000 tienen el campo IdPersona con valor los restantes estan null. Y el campo IdEmpresa hay 58000 que no estan null.

Otra nota:

La tabla REGISTROS también posee un campo que es IdDireccion, la cual es la dirección de la empresa y ese campo si tiene valor en cada registro. Este campo proviene de una tabla llamada DIRECCIONES.

La pregunta es:

Puedo Utilizar ese campo para obtener la información que necesito??


Gracias por tu ayuda!!!
  #4 (permalink)  
Antiguo 28/05/2008, 10:46
 
Fecha de Ingreso: abril-2008
Ubicación: Santo Domingo, Republica Dominicana
Mensajes: 53
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: Problema con Base de datos

Cita:
Iniciado por Thumper Ver Mensaje
Entiendo esto:

Tabla_empresa[IdEmpresa - NombreEmpresa]:
1 - Empresa1
2 - Empresa2
3 - Empresa3

Tabla_persona[IdPersona - NombrePersona]:
1 - Persona1
2 - Persona2
3 - Persona3

Tabla_Registro[IdEmpresa - IdPersona]:
1 - 1
1 - Null
2 - 3
3 -1
3 - Null
Null - 1
Null - 2
Null - Null

Para saber las personas por una empresa:

SELECT TP.NombrePersona
FROM Tabla_persona TP INNER JOIN Tabla_Registro TR
ON TP.IdPersona = TR.IdPersona
WHERE TR.IdPersona IS NOT NULL

Para saber las personas por una empresa:

SELECT TP.NombrePersona
FROM Tabla_persona TP INNER JOIN Tabla_Registro TR
ON TP.IdPersona = TR.IdPersona
WHERE TR.IdPersona IS NOT NULL AND
TR.IdEmpresa = ?????

Para saber las empresa por una persona:

SELECT TP.NombreEmpresa
FROM Tabla_empresa TP INNER JOIN Tabla_Registro TR
ON TP.IdEmpresa = TR.IdEmpresa
WHERE TR.IdEmpresa IS NOT NULL AND
TR.IdPersona= ?????

Saludos

Gracias por la ayuda...

Pero, como antes, solo puedo ver la información (las personas asociadas a una empresa y/o las empresas de la cual una persona es socio), de los campos en los que IdPersona y IdEmpresa no estan NULL.

Pero aún sigue el problema, porque, de 63000 registros de la tabla REGISTROS solo 6000 tienen el campo IdPersona con valor los restantes estan null. Y el campo IdEmpresa hay 58000 que no estan null.

Otra nota:

La tabla REGISTROS también posee un campo que es IdDireccion, la cual es la dirección de la empresa y ese campo si tiene valor en cada registro. Este campo proviene de una tabla llamada DIRECCIONES.

La pregunta es:

Puedo Utilizar ese campo para obtener la información que necesito??


Gracias por tu ayuda!!!
  #5 (permalink)  
Antiguo 21/10/2008, 19:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con Base de datos

nesecito varios logos de empresas dominicanas
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 19:33.