BASE DE DATOS AVANZADAS
PRÁCTICA DDL
CONSULTAS MULTITABLA
Nombre: GINO PAUL GONZALES CUSTODIO
INTRODUCCIÓN:
Resolver las siguientes consultas multitabla utilizando la base de datos BDAvanzada
1. Listar los datos de cada uno de los productos, indicando descripción de producto, precio unitario y descripción de categoría
select p.descripcion,p.preciounitario,c.descripcion from producto p inner join categoria c on c.idcategoria=p.idcategoria
2. Listar todas las ventas (numero de documento, fecha y total) de los productos del tipo hardware (nemónico HD : dos primeras letras del código de producto)
select distinct v.numerodocumento,v.fecha,v.total from venta v inner join detalleventa dv on v.idventa=dv.idventainner join producto p on p.idproducto=dv.idproductowhere left(p.codigo,2)='HD'
3. Listar los clientes que pertenecen a las zonas de descripción: zona 1 , zona 2 y zona 3
select c.idcliente,c.nombre+', '+c.apellido as Cliente,c.direccion,c.idzona,z.descripcion from cliente c inner join zona z on c.idzona=z.idzona where c.idzona like '[1,2,3]'
4. Listar sólo las categorías que tienen productos relacionados indicando para cada una de ellas su descripción y nombres de productos
select * from productoselect p.descripcion as Producto,c.descripcion as Categoria from categoria c inner join producto p on p.idcategoria=c.idcategoria
5. Listar los nombres de los productos comprados por los clientes asignados a la zona de código 1
select distinct dv.idproducto,p.descripcion,cl.idzona fromdetalleventa dv inner join venta v on dv.idventa=v.idventa inner join cliente cl on cl.idcliente=v.idclienteinner join producto p on p.idproducto=dv.idproductowhere cl.idzona=1
6. Listar los nombres de los productos comprados por los clientes asignados a la zona de descripción Zona1
select distinct dv.idproducto,p.descripcion,cl.idzona,z.descripcion fromdetalleventa dv inner join venta v on dv.idventa=v.idventa inner join cliente cl on cl.idcliente=v.idclienteinner join producto p on p.idproducto=dv.idproductoinner join zona z on z.idzona=cl.idzonawhere z.descripcion='chiclayo'
7. Listar el nombre completo de los clientes para los que se ha girado facturas por un importe total mayor a 1000 nuevos soles
select v.idcliente,c.nombre+' '+c.apellido as cliente,left(numerodocumento,1) as Documento,v.total
from cliente c inner join venta v on v.idcliente=c.idclienteinner join detalleventa dv on v.idventa=dv.idventawhere left(numerodocumento,1)='f' and dv.importe>1000
8. Listar nombre de cliente, descripción de zona, nombre de producto y descripción de categoría de las facturas emitidas por un importe total mayor a 1000 nuevos soles
select v.idcliente,c.nombre+', '+c.apellido as cliente,z.descripcion as Zona,p.descripcion as Producto,ca.descripcion as Categoria,left(numerodocumento,1) as Documento,v.totalfrom cliente c inner join venta v on v.idcliente=c.idclienteinner join detalleventa dv on v.idventa=dv.idventainner join zona z on c.idzona=z.idzonainner join producto p on p.idproducto=dv.idproductoinner join categoria ca on ca.idcategoria=p.idcategoriawhere left(numerodocumento,1)='f' and v.total>1000
9. Listar el nombre completo de los clientes de la zona de descripción Zona1 que compraron el día 03 de abril del 2008
select c.idcliente,c.nombre+' '+c.apellido as cliente,z.idzona,z.descripcion as Zona from cliente c inner join zona z on c.idzona=z.idzonainner join venta v on v.idcliente=c.idclientewhere z.descripcion='chiclayo' and v.fecha='03/04/2008'
10. Listar el nombre completo de los clientes que compraron algún jueves del mes de abril del 2008
select c.idcliente,c.nombre+' '+c.apellido as cliente from cliente c inner join venta v on v.idcliente=c.idclientewhere datepart(weekday,v.fecha)=4 and month(v.fecha)=04 and year(v.fecha)=2008