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

[SOLUCIONADO] Usar una llave 2 veces en una tabla

Estas en el tema de Usar una llave 2 veces en una tabla en el foro de SQL Server en Foros del Web. Hola a todos, explico mi duda: Digamos que tengo una tabla de nombre TIEMPO, esta tabla tiene diferentes fechas, como hago si tengo una tabla ...
  #1 (permalink)  
Antiguo 22/04/2013, 13:59
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 2 meses
Puntos: 3
Usar una llave 2 veces en una tabla

Hola a todos, explico mi duda:

Digamos que tengo una tabla de nombre TIEMPO, esta tabla tiene diferentes fechas, como hago si tengo una tabla de nombre FACTURA y necesito jalar de la tabla TIEMPO, la llave 2 veces, una para LA FECHA DE LA FACTURA y otra para la FECHA DE REPARTO.

Es solo un ejemplo, la idea es q quiero sacar 2 o mas veces una fecha de la tabla tiempo.

Agradezco de antemano su apoyo.
  #2 (permalink)  
Antiguo 22/04/2013, 14:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Usar una llave 2 veces en una tabla

una foreign key con 2 campos

tabla1 campo1
tabla2 campo2,campo3

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 22/04/2013, 14:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Usar una llave 2 veces en una tabla

Cita:
Iniciado por Libras Ver Mensaje
una foreign key con 2 campos

tabla1 campo1
tabla2 campo2,campo3

saludos!
No comprendo muy bien a q te refieres, podrias ser un poco mas explicito?
  #4 (permalink)  
Antiguo 22/04/2013, 14:32
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Usar una llave 2 veces en una tabla

aqui se explica mejor:

http://stackoverflow.com/questions/3...-in-sql-server

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 22/04/2013, 14:54
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Usar una llave 2 veces en una tabla

Cita:
Iniciado por Libras Ver Mensaje
Pero a lo que yo me refiero es a esto:

Código SQL:
Ver original
  1. CREATE TABLE TIEMPO(
  2.     CODIGO_TIEMPO NVARCHAR(5),
  3.     DESCRIPCION DATETIME
  4.     PRIMARY KEY (CODIGO_TIEMPO)
  5. )
  6.  
  7. CREATE TABLE FACTURA(
  8.     CODIGO_FACTURA NVARCHAR(5),
  9.     FECHA_FACTURA DATETIME,         -- ESTA ES UNA FORIGN KEY OBTENIDA DE LA TABLA TIEMPO
  10.     CANTIDAD INTEGER,          
  11. PRECIO_UNITARIO NUMERIC(10,5),
  12.     FECHA_ENVIO DATETIME            -- ESTA ES OTRA FORIGN KEY OBTENIDA DE LA TABLA TIEMPO
  13.     PRIMARY KEY (CODIGO_FACTURA),
  14.     CONSTRAINT FK_FACTURA_FECHA_FACTURA FOREIGN KEY (CODIGO_TIEMPO)
  15.     REFERENCES TIEMPO(CODIGO_TIEMPO),
  16.     CONSTRAINT FK_FACTURA_FECHA_FACTURA FOREIGN KEY (CODIGO_TIEMPO)
  17.     REFERENCES TIEMPO(CODIGO_TIEMPO)
  18. )

Si te das cuenta, en Factura, estoy llamando a la llave 2 veces... Como se hace esto?

Última edición por gnzsoloyo; 25/04/2013 a las 06:24
  #6 (permalink)  
Antiguo 22/04/2013, 15:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Usar una llave 2 veces en una tabla

Código SQL:
Ver original
  1. CREATE TABLE TIEMPO(
  2.     CODIGO_TIEMPO NVARCHAR(5),
  3.     DESCRIPCION DATETIME
  4.     PRIMARY KEY (CODIGO_TIEMPO)
  5. )
  6.  
  7. CREATE TABLE FACTURA(
  8.     CODIGO_FACTURA NVARCHAR(5),
  9.     FECHA_FACTURA DATETIME,         -- ESTA ES UNA FORIGN KEY OBTENIDA DE LA TABLA TIEMPO
  10.     CANTIDAD INTEGER,          
  11. PRECIO_UNITARIO NUMERIC(10,5),
  12.     FECHA_ENVIO DATETIME            -- ESTA ES OTRA FORIGN KEY OBTENIDA DE LA TABLA TIEMPO
  13.     PRIMARY KEY (CODIGO_FACTURA),
  14.     CONSTRAINT FK_FACTURA_FECHA_FACTURA FOREIGN KEY (fecha_factura,codigo_factura)
  15.     REFERENCES TIEMPO(CODIGO_TIEMPO)
  16. )
asi no te funciona?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 24/04/2013, 08:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Usar una llave 2 veces en una tabla

No funciona, por que estoy llamando a un FK de unicamente FECHA_FACTURA y no llamo al de FECHA_ENVIO, eso es lo que no consigo de hacer, llamar 2 veces a una tabla, pasandole su PK 2 veces distintas.

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. CREATE TABLE TIEMPO(
  2.     CODIGO_TIEMPO NVARCHAR(5),
  3.     DESCRIPCION DATETIME
  4.     PRIMARY KEY (CODIGO_TIEMPO)
  5. )
  6.  
  7. CREATE TABLE FACTURA(
  8.     CODIGO_FACTURA NVARCHAR(5),
  9.     FECHA_FACTURA DATETIME,         -- ESTA ES UNA FORIGN KEY OBTENIDA DE LA TABLA TIEMPO
  10.     CANTIDAD INTEGER,          
  11. PRECIO_UNITARIO NUMERIC(10,5),
  12.     FECHA_ENVIO DATETIME            -- ESTA ES OTRA FORIGN KEY OBTENIDA DE LA TABLA TIEMPO
  13.     PRIMARY KEY (CODIGO_FACTURA),
  14.     CONSTRAINT FK_FACTURA_FECHA_FACTURA FOREIGN KEY (fecha_factura,codigo_factura)
  15.     REFERENCES TIEMPO(CODIGO_TIEMPO)
  16. )
asi no te funciona?
  #8 (permalink)  
Antiguo 24/04/2013, 08:31
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Usar una llave 2 veces en una tabla

La solucion es la siguiente

Código sql:
Ver original
  1. CREATE TABLE tiempo(
  2.     codigo_tiempo nvarchar(5),
  3.     descripcion datetime
  4.     PRIMARY KEY (codigo_tiempo)
  5. )
  6.  
  7. CREATE TABLE factura(
  8.     codigo_factura nvarchar(5),
  9.     fecha_factura nvarchar(5),         -- esta es una forign key obtenida de la tabla tiempo
  10.     cantidad INTEGER,          
  11.     precio_unitario NUMERIC(10,5),
  12.     fecha_envio nvarchar(5)            -- esta es otra forign key obtenida de la tabla tiempo
  13.     PRIMARY KEY (codigo_factura),
  14.     CONSTRAINT fk_factura_fecha_factura FOREIGN KEY (fecha_factura)
  15.     REFERENCES tiempo(codigo_tiempo),
  16.     CONSTRAINT fk_factura_fecha_envio FOREIGN KEY (fecha_envio)
  17.     REFERENCES tiempo(codigo_tiempo)
  18. )

la tabla quedo creanda enviando dos veces la llave, igual voy a probarla con datos.

Gracias por el intento, quizas no me explique bien.

Saludos

Etiquetas: llave, tabla, usar, veces
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 10:38.