Vous êtes sur la page 1sur 4

create database LAB3_P3

go
use LAB3_P3
go

create table Estado (


zip int primary key,
ciudad varchar(30) ,
Estado varchar(20));

create table Empleado (


ID_empleado varchar(10) primary key,
Nombre varchar(30),
zip int references Estado(zip),
fecha_contra date);

CREATE TABLE Categoria(


id_category int primary key,
Category_Name varchar(50) NOT NULL
)

create table libro (


id_libro int primary key,
Nombre varchar(30),
id_category int references Categoria (id_category),
cantidad int not null,
Precio int not null,
);

create table cliente (


id_cliente int primary key,
cname varchar(30),
street varchar(30),
zip int references Estado,
phone char(12));

create table orden (


o_id int primary key,
id_cliente int references cliente (id_cliente),
id_empleado varchar(10) references empleado(id_empleado),
Fecha_compra date,
total_venta int,
iva int
);

create table detalle_orden (


o_id int references orden(o_id),
id_libro int references libro(id_libro),
cantidad int not null,
primary key (o_id, id_libro));

/*datos de tablas*/
insert into Estado values (123, 'Bellingham', 'WA');
insert into Estado values (95388, 'Winton', 'CA');
insert into Estado values (44242, 'Stow', 'OH');
insert into Estado values (61536, 'Hanna city', 'IL');
insert into Estado values (01254, 'Richmond', 'MA');
insert into Estado values (95124, 'San Jose', 'CA');
insert into Estado values (95382, 'Turlock', 'MA');
insert into Estado values (95380, 'Turlock', 'CA');
insert into Estado values (98225, 'Houston', 'TX');

insert into Empleado values ('P0239400', 'Jones Hoffer',98225, '2000-12-12');


insert into Empleado values ('P0239401', 'Jeffrey Prescott',95388, '2006-01-01');
insert into Empleado values ('P0239402', 'Fred NcFaddeb',95124, '2008-09-01');

INSERT INTO Categoria VALUES (101,'Financial')


INSERT INTO Categoria VALUES (102,'Business')
INSERT INTO Categoria VALUES (103,'Software')
INSERT INTO Categoria VALUES (104,'Audio')

insert into libro values (10506, 'Accounting 101',101,200, 12999);


insert into libro values (10507, 'Management 101',102,159, 10999);
insert into libro values (10508, 'Fraud Cases',102,190, 17999);
insert into libro values (10509, 'CPA Review',103,65, 29999);
insert into libro values (10601, 'Peachtree for Dummies',104,322, 4999);
insert into libro values (10701, 'Financial Accounting',101,129, 16499);
insert into libro values (10800, 'Managerial Accounting',102,155, 11499);
insert into libro values (10900, 'Cost Accounting',101,122, 11999);
insert into libro values (10901, 'Intermediate Accounting',102,123, 16499);
insert into libro values (10902, 'XBRL in Nutshell',103,124, 10999);

insert into cliente values (23511,'Michelle Kuan', '123 Main St.',98225, '360-636-
5555');
insert into cliente values (23512, 'George Myer', '237 Ash Ave.',95124, '312-678-
5555');
insert into cliente values (23513, 'Richard Gold', '111 Inwood St.',95124, '312-
883-7337');
insert into cliente values (23514, 'Robert Smith', '54 Gate Dr.',95388, '206-832-
1221');
insert into cliente values (23515, 'Christopher David', '777 Loto St.',98225, '360-
458-9878');
insert into cliente values (23516, 'Adam Beethoven', '234 Park Rd..',95380, '209-
546-7299');
insert into cliente values (23517, 'Lidwig Bach', '5790 Walnut St.',95382, '209-
638-2712');

insert into orden values (1020, 23511, 'P0239400', '2009-10-18', 76994, 14629);
insert into orden values (1021, 23511, 'P0239400', '2009-10-18', 101993, 19379);
insert into orden values (1022, 23512, 'P0239401', '2009-10-29', 201990, 38378);
insert into orden values (1023, 23513, 'P0239402', '2009-10-29', 81495, 15484);
insert into orden values (1024, 23511, 'P0239400', '2009-10-29', 92994, 17669);
insert into orden values (1025, 23513, 'P0239400', '2009-11-10', 71996, 13679);
insert into orden values (1026, 23514, 'P0239400', '2009-11-10', 62995, 11969);
insert into orden values (1027, 23515, 'P0239401', '2009-11-10', 51996, 9879);
insert into orden values (1028, 23516, 'P0239402', '2009-11-10', 22998, 4370);
insert into orden values (1029, 23517, 'P0239400', '2009-11-15', 45996, 8739);
insert into orden values (1030, 23515, 'P0239400', '2009-11-15', 192988, 36668);
insert into orden values (1031, 23516, 'P0239400', '2009-11-15', 119996, 22799);
insert into orden values (1032, 23517, 'P0239401', '2009-11-15', 48997, 9309);
insert into orden values (1033, 23511, 'P0239402', '2009-11-16', 43996, 8359);
insert into orden values (1034, 23517, 'P0239400', '2009-11-16', 21998, 4180);
insert into orden values (1035, 23514, 'P0239400', '2009-11-16', 10999, 2090);

insert into detalle_orden values (1020, 10506, 1);


insert into detalle_orden values (1020, 10508, 3);
insert into detalle_orden values (1020, 10601, 2);
insert into detalle_orden values (1021, 10701, 4);
insert into detalle_orden values (1021, 10900, 3);
insert into detalle_orden values (1022, 10508, 2);
insert into detalle_orden values (1022, 10509, 4);
insert into detalle_orden values (1022, 10800, 4);
insert into detalle_orden values (1023, 10800, 1);
insert into detalle_orden values (1023, 10509, 2);
insert into detalle_orden values (1023, 10601, 2);
insert into detalle_orden values (1024, 10509, 1);
insert into detalle_orden values (1024, 10507, 1);
insert into detalle_orden values (1024, 10506, 4);
insert into detalle_orden values (1025, 10508, 4);
insert into detalle_orden values (1026, 10506, 4);
insert into detalle_orden values (1026, 10507, 1);
insert into detalle_orden values (1027, 10506, 4);
insert into detalle_orden values (1028, 10900, 1);
insert into detalle_orden values (1028, 10902, 1);
insert into detalle_orden values (1029, 10800, 4);
insert into detalle_orden values (1030, 10900, 2);
insert into detalle_orden values (1030, 10509, 3);
insert into detalle_orden values (1030, 10902, 3);
insert into detalle_orden values (1030, 10800, 4);
insert into detalle_orden values (1031, 10509, 4);
insert into detalle_orden values (1032, 10508, 2);
insert into detalle_orden values (1032, 10506, 1);
insert into detalle_orden values (1033, 10507, 4);
insert into detalle_orden values (1034, 10507, 2);
insert into detalle_orden values (1035, 10507, 1);

CREATE PROCEDURE SP_NUEVOLIBRO @IDLIBRO INT, @NOMBRE VARCHAR(30), @IDCATEGORIA INT,


@CANTIDAD INT, @PRECIO INT
AS
BEGIN
IF EXISTS (SELECT ID_LIBRO FROM LIBRO WHERE ID_LIBRO=@IDLIBRO)
BEGIN
RAISERROR('ERROR: REGISTRO YA EXISTE',-1,-1)
RETURN -001
END
ELSE
BEGIN
INSERT INTO LIBRO VALUES (@IDLIBRO, @NOMBRE, @IDCATEGORIA, @CANTIDAD,
@PRECIO)
END
END

EXEC SP_NUEVOLIBRO 10506, 'ACCOUNTING 101',101,200, 12999


EXEC SP_NUEVOLIBRO 10504, 'KISS FROM A ROSE',103,200, 15999
EXEC SP_NUEVOLIBRO 21065, 'GULTY PLEASURE',101,200, 21000

SELECT * FROM LIBRO

CREATE PROCEDURE SP_SUMATOTAL (@ESTADO VARCHAR(50))


AS BEGIN

SELECT SUM (TOTAL_VENTA)TTL_VTA, ESTADO.ESTADO, SUM (CANTIDAD)CANTIDAD


FROM ORDEN,CLIENTE,ESTADO,DETALLE_ORDEN
WHERE CLIENTE.ZIP=ESTADO.ZIP AND ESTADO.ESTADO=@ESTADO AND
ORDEN.O_ID=DETALLE_ORDEN.O_ID
GROUP BY ESTADO.ESTADO

END

EXEC SP_SUMATOTAL TX

Vous aimerez peut-être aussi