Hola..!!
Miren... Estoy haciendo practico de una materia de la facu ya q el sabado q viene la rindo...
Cree todas las tablas excepto la ultima (Detalle_Factura) que es la que me da error... Aca les dejo el script...
Código SQL:
Ver originalCREATE DATABASE Guia1_Modelo_Factura /*Guia 1 - Consultas simples, multitabla y agrupamiento*/
USE Guia1_Modelo_Factura
CREATE TABLE Localidades
(
Id_localidad INT,
Nombre VARCHAR (50),
CONSTRAINT PK_Id_localidad PRIMARY KEY (Id_localidad),
)
CREATE TABLE Barrios
(
Id_barrio INT,
Nombre VARCHAR (50),
Id_localidad INT,
CONSTRAINT PK_Id_barrio PRIMARY KEY (Id_barrio),
CONSTRAINT FK_Id_localidad FOREIGN KEY (Id_localidad) REFERENCES Localidades (Id_localidad),
)
CREATE TABLE Forma_pago
(
Id_forma_pago INT,
Descripcion VARCHAR (100),
CONSTRAINT PK_Id_forma_pago PRIMARY KEY (Id_forma_pago),
)
CREATE TABLE Rubros
(
Id_rubro INT,
Descripcion VARCHAR (100),
CONSTRAINT PK_Id_rubro PRIMARY KEY (Id_rubro),
)
CREATE TABLE Tipo_cuenta
(
Id_tipo_cuenta INT,
Descripcion VARCHAR (100),
CONSTRAINT PK_Id_tipo_cuenta PRIMARY KEY (Id_tipo_cuenta),
)
CREATE TABLE Tipo_factura
(
Id_tipo_factura INT,
Descripcion VARCHAR (100),
CONSTRAINT PK_Id_tipo_factura PRIMARY KEY (Id_tipo_factura),
)
CREATE TABLE Clientes
(
Id_cliente INT,
Apellido VARCHAR (50),
Nombres VARCHAR (50),
Fecha_nac DATETIME,
Nro_calle NUMERIC (5,0),
Id_barrio INT,
Id_tipo_cuenta INT,
Id_forma_pago INT,
CONSTRAINT PK_Id_cliente PRIMARY KEY (Id_cliente),
CONSTRAINT FK_Id_barrio FOREIGN KEY (Id_barrio) REFERENCES Barrios (Id_barrio),
CONSTRAINT FK_Id_tipo_cuenta FOREIGN KEY (Id_tipo_cuenta) REFERENCES Tipo_cuenta (Id_tipo_cuenta),
CONSTRAINT FK_Id_forma_pago FOREIGN KEY (Id_forma_pago) REFERENCES Forma_pago (Id_forma_pago),
)
CREATE TABLE Articulos
(
Id_articulo INT,
Descripcion VARCHAR (100),
Precio INT,
Id_rubro INT,
CONSTRAINT PK_Id_articulo PRIMARY KEY (Id_articulo),
CONSTRAINT FK_Id_rubro FOREIGN KEY (Id_rubro) REFERENCES Rubros (Id_rubro),
)
CREATE TABLE Vendedores
(
Legajo NUMERIC (5,0),
Apellido VARCHAR (50),
Nombres VARCHAR (50),
Calle VARCHAR (50),
Nro INT,
Id_barrio INT,
CONSTRAINT PK_Legajo PRIMARY KEY (Legajo),
CONSTRAINT FK_Id_barrioVendedor FOREIGN KEY (Id_barrio) REFERENCES Barrios (Id_barrio),
)
CREATE TABLE Sucursales
(
Id_sucursal INT,
Nombres VARCHAR (50),
Calle VARCHAR (50),
Nro INT,
Id_barrio INT,
CONSTRAINT PK_Id_sucursal PRIMARY KEY (Id_sucursal),
CONSTRAINT FK_Id_barrioSucursal FOREIGN KEY (Id_barrio) REFERENCES Barrios (Id_barrio),
)
CREATE TABLE Factura
(
Nro_factura INT,
Id_sucursal INT,
Id_tipo_factura INT,
Id_cliente INT,
Fecha DATETIME,
Total INT,
Id_vendedor NUMERIC (5,0),
CONSTRAINT PK_Id_sucursal_Nro_factura_Id_tipo_fact_Id_cliente PRIMARY KEY(Nro_factura,Id_sucursal,Id_tipo_factura,Id_cliente),
CONSTRAINT FK_Id_sucursal FOREIGN KEY (Id_sucursal) REFERENCES Sucursales (Id_sucursal),
CONSTRAINT FK_Id_tipo_factura FOREIGN KEY (Id_tipo_factura) REFERENCES Tipo_factura (Id_tipo_factura),
CONSTRAINT FK_Id_cliente FOREIGN KEY (Id_cliente) REFERENCES Clientes (Id_cliente),
CONSTRAINT FK_Id_vendedor FOREIGN KEY (Id_vendedor) REFERENCES Vendedores (Legajo),
)
[B]CREATE TABLE Detalle_Factura
(
Nro_factura INT,
Id_sucursal INT,
Id_tipo_factura INT,
Id_articulo INT,
Cantidad INT,
Precio_parcial INT,
CONSTRAINT PK_Nro_factura_Id_sucursal_Id_tipo_factura PRIMARY KEY (Nro_factura,Id_sucursal,Id_tipo_factura),
CONSTRAINT FK_Nro_factura FOREIGN KEY (Nro_factura) REFERENCES Factura (Nro_factura),
CONSTRAINT FK_Id_sucursal FOREIGN KEY (Id_sucursal) REFERENCES Factura (Id_sucursal),
CONSTRAINT FK_Id_tipo_factura FOREIGN KEY (Id_tipo_factura) REFERENCES Factura (Id_tipo_factura),
CONSTRAINT FK_Id_articulo FOREIGN KEY (Id_articulo) REFERENCES Articulos (Id_articulo),[/B]
)
Al tratar de ejecutar esta partecita del script me de el siguente error...
Mens. 1776, Nivel 16, Estado 0, Línea 1
No hay claves principales ni candidatas en la tabla a la que se hace referencia ('Factura') que concuerden con la lista de columnas que hace la referencia en la clave externa 'FK_Nro_factura'.
Mens. 1750, Nivel 16, Estado 0, Línea 1
No se pudo crear la restricción. Consulte los errores anteriores.
Si alguien me puede ayudar le estare agradecido.... Saludos..!!