CONSULTAS+FACTURA

FACTURA ‍‍‍‍‍‍clientes (__cod_clientes__,nombre,direccion,telefono)  facturas(__num_factura__,cod_cliente,fecha) productos(__cod_producto__,descripcion,precio,iva) ‍‍‍ ‍ facturas_productos ( __num_factura__,cod_producto,cantidad)

create database factura

create table clientes ( cod_cliente varchar ( 10 )no tnull primary key, nombre varchar ( 30 )notnull, telefono varchar ( 10 )not null, direccion varchar ( 30 )not null, )

create table facturas ( num_factura varchar ( 5 ) not nul l primary key, cod_cliente varchar ( 10 ) not null, fecha date not null, ) create table productos ( cod_producto varchar ( 5 ) not null primary key, descripcion varchar ( 30 ) not null, precio int not null, iva int not null, ) create table facturas_productos ( num_factura varchar ( 5 ) not null primary key, cod_producto varchar ( 5 ) not null, cantidad int not null ) /*foraneas ... */

Alter table facturas Add constraint fk_facturas_cod_cliente Foreign key ( cod_cliente ) references clientes ( cod_cliente )

Alter table facturas_productos Add constraint fk_facturas_productos_num_factura Foreign key ( num_factura ) references facturas ( num_factura )

Alter table facturas_productos Add constraint fk_facturas_productos_cod_producto Foreign key ( cod_producto ) references productos ( cod_producto )

/* insertar datos*/ insert into clientes ( cod_cliente, nombre , telefono , direccion ) values ( 10123445 , 'luz alvardo' , 8862330 , 'cll 20b # 66-02' ) insert into clientes ( cod_cliente, nombre , telefono , direccion ) values ( 12345678 , 'jeimy chavarro' , 8865066 , 'av 81# 25-04' ) insert into clientes ( cod_cliente, nombre , telefono , direccion ) values ( 89076543 , 'tatiana barbsa' , 8845342 , 'cll 80 # 10-13' ) insert into clientes ( cod_cliente, nombre , telefono , direccion ) values ( 32145678 , 'jeferson roncacnio' , 8789875 , 'kr 88 # 31-01' ) insert into clientes ( cod_cliente, nombre , telefono , direccion ) values ( 77788899 , 'fabian hernandez' , 2005304 , 'av NQS 100 # 45-02' ) insert into clientes ( cod_cliente, nombre , telefono , direccion ) values ( 12309876 , 'camilo albail' , 5777625 , 'kr 100# 57j-58' )

insert into facturas ( num_factura, cod_cliente , fecha ) values ( 00001 , 10123445 , '6/8/2011' ) insert into facturas ( num_factura, cod_cliente , fecha ) values ( 00002 , 12345678 , '6/8/2011' ) insert into facturas ( num_factura, cod_cliente , fecha ) values ( 00003 , 89076543 , '1/9/2011' ) insert into facturas ( num_factura, cod_cliente , fecha ) values ( 00004 , 32145678 , '8/9/2011' ) insert into facturas ( num_factura, cod_cliente , fecha ) values ( 00005 , 77788899 , '8/9/2011' ) insert into facturas ( num_factura, cod_cliente , fecha ) values ( 00006 , 12309876 , '5/9/2011' )

insert into productos ( cod_producto, descripcion , precio , iva ) values ( 1234 , 'jabon' , 3500 , 6) insert into productos ( cod_producto, descripcion , precio , iva ) values ( 5678 , 'shampoo' , 10200 , 10) insert into productos ( cod_producto, descripcion , precio , iva ) values ( 9012 , 'paitos' , 2850 , 10) insert into productos ( cod_producto, descripcion , precio , iva ) values ( 3456 , 'paales grande' , 35150 , 16) insert into productos ( cod_producto, descripcion , precio , iva ) values ( 7890 , 'toallas' , 2200 , 10) insert into productos ( cod_producto, descripcion , precio , iva ) values ( 0987 , 'tampones' , 3800 , 10)

insert into facturas_productos ( num_factura, cod_producto , cantidad ) values ( 00001 , 1234 , 3) insert into facturas_productos ( num_factura, cod_producto , cantidad ) values ( 00001 , 5678 , 2) insert into facturas_productos ( num_factura, cod_producto , cantidad ) values ( 00002 , 9012 , 2) insert into facturas_productos ( num_factura, cod_producto , cantidad ) values ( 00003 , 3456 , 1) insert into facturas_productos ( num_factura, cod_producto , cantidad ) values ( 00004 , 7890 , 2) insert into facturas_productos ( num_factura, cod_producto , cantidad ) values ( 00004 , 0987 , 5)

/*consultas.......

1. Cuantos productos por cada factura*/ select facturas_productos. num_factura, count ( facturas_productos . cod_producto ) AS 'cantidad de productos' from facturas_productos group by facturas_productos. num_factura

/*2. Listar el codigo de producto,descripcion,precio, cantidad, subtotal(precio*cantidad)*/ select facturas_productos. cod_producto, descripcion , precio , count ( facturas_productos . cantidad ) as 'cantidad' , sum ( precio ) as 'subtotal' from productos, facturas_productos where productos. cod_producto = facturas_productos. cod_producto group by facturas_productos. cod_producto, productos. descripcion, productos. precio

/*3. Cual es el promedio facturado de un determinado cliente*/ select c lientes. nombre, avg ( precio * cantidad ) as 'promedio' from clientes, facturas , productos , facturas_productos where facturas. cod_cliente = clientes. cod_cliente and facturas_productos. num_factura = facturas. num_factura and facturas_productos. cod_producto = productos. cod_producto group by clientes. nombre

/*4. A que cliente nunk se le ha facturado o en x fecha*/ select distinct facturas. fecha, clientes. cod_cliente, nombre from clientes, facturas where clientes. cod_cliente = facturas. cod_cliente and fecha != '6/8/2011'

/*5. Listar los productos q tengan precio entre 2000 y 3000*/ select * from productos where precio between 2000 and  3000

/*6. Los clientes que viven en la direccionen la cll 20b # 66-02.*/ select clientes. nombre, clientes. direccion from clientes where clientes. direccion = 'cll 20b # 66-02'

/*7. Entregue estadsticas sobre los precios por productos. Entregar: 1. El promedio.*/ SELECT AVG ( productos . precio ) as 'promedio de los precios de productos' from productos where precio > 0 /*2. La varianza.*/ select VAR ( productos . precio ) as 'varianza de los precios de productos' from productos where precio > 0 /*3. El mximo.*/ select MAX ( productos . precio ) as 'maximo de los precios de productos' from productos where precio > 0 /*4. El mnimo.*/ select MIN ( productos . precio ) as 'minimo de los precios de productos' from productos where precio > 0 /*5. La moda.*/ SELECT DISTINCT productos. precio, count ( productos . precio ) from productos groupby productos. precio orderby count ( productos . precio ) DESC

/* 8 Obtener el apellidos de todos los empleados en mayuscula*/

selec t UPPER (nombre) AS 'NOMBRES' from clientes