lunes, 19 de septiembre de 2011

BDSica_06

--Mostrar la cantidad de alumnos matriculados en cada
--seccin del nivel primario para el ao 2009

select grado.descripcion as 'grado',
seccion.descripcion as 'seccin',
count(detallealumno.idalumno) as 'alumnos'
FROM detallealumno
inner join seccion on seccion.idseccion=detallealumno.idseccion
inner join grado on grado.idgrado=seccion.idgrado
inner join nivel on nivel.idnivel=grado.idnivel
where nivel.descripcion='primario' and detallealumno.idano='2009'
group by detallealumno.idseccion,nivel.descripcion,
seccion.descripcion,grado.descripcion

BDSica_05

--Mostrar los alumnos matriculados en el nivel
--secundario para el grado de nombre 5

select nivel.descripcion as 'nivel',
grado.descripcion as 'grado',
count(detallealumno.idalumno) as 'alumnos'
from detallealumno
inner join seccion on seccion.idseccion=detallealumno.idseccion
inner join grado on grado.idgrado=seccion.idgrado
inner join nivel on nivel.idnivel=grado.idnivel
where grado.nombre='5' and nivel.descripcion='secundario'
group by nivel.descripcion,grado.descripcion,detallealumno.idseccion

domingo, 18 de septiembre de 2011

BDSica_04

--Mostrar el turno con mayor cantidad de secciones
select top 1 turno.descripcion as 'turno' ,
count(seccion.descripcion) as 'secciones'
from turno
inner join seccion on turno.idturno=seccion.idturno 
group by turno.descripcion

BDSica_03

--Mostrar la cantidad de secciones A de cada turno
select turno.descripcion as 'turno' ,
count(seccion.descripcion) as 'secciones' 
from turno
inner join seccion on turno.idturno=seccion.idturno
where seccion.descripcion='A'
group by turno.descripcion

BDSica_02

--Mostrar la cantidad de secciones por cada nivel y grado
select nivel.descripcion as 'nivel',grado.descripcion as 'grado',
count(seccion.idseccion) as 'secciones' 
from nivel
inner join grado on nivel.idnivel=grado.idnivel
inner join seccion on grado.idgrado=seccion.idgrado
group by grado.descripcion,nivel.descripcion

BDSica_01

--Mostrar la cantidad de secciones por cada turno
select idturno,count(idseccion)
from seccion
group by idturno

BDAvanzada_07

--MOSTRAR LA CANTIDAD EN SOLES QUE SE LE HA VENDIDO A CADA CLIENTE
select cliente.idcliente,cliente.nombre +' '+ cliente.apellido as 'cliente',
sum(venta.total) as 'total' from cliente inner join venta on cliente.idcliente=venta.idcliente group by cliente.idcliente,cliente.nombre,cliente.apellido

BDAvanzada_06

--LISTAR LA CANTIDAD DE CLIENTES POR ZONA
--1.-Agrupamos los clientes por zona
--2.-Luego usamos una juntura (Para buscar los clientes que esten atados a determinadas zonas)
--3.-luego pasamos a contar los clientes por zona

select zona.idzona,count(cliente.idcliente)
from cliente
inner join zona on zona.idzona=cliente.idzona
group by zona.idzona

BDAvanzada_05

--MOSTRAR LOS 3 PRODUCTOS MAS BARATOS
--1.-Lo primero que se tiene que hacer es ordenar los productos por precio
--2.-Si queremos extraer los 3 mas baratos entonces se ordenara de forma     'Ascendente'
--3.-Si queremos extraer los 3 mas caros entonces se ordenara de forma 'Descendente'
--4.-Finalmente usamos el TOP para extraer los primeros 'n' regristros

select top 3 descripcion, preciounitario
from producto
order by preciounitario asc

BDAvanzada_04

--Listar los clientes que compraron
--algn jueves del mes de abril del ao 2008

select cliente.nombre +' '+ cliente.apellido as 'cliente',datename(weekday,venta.fecha)+' '+convert(varchar(2),day(venta.fecha))+' de '+ datename(month,venta.fecha)+' del '+convert(varchar(4),year(venta.fecha)) as 'fecha' from cliente inner join venta on cliente.idcliente=venta.idcliente where datename(weekday,venta.fecha)='Jueves' and datename(month,venta.fecha)='Abril' and year(venta.fecha)=2008

BDAvanzada_03

--Listar el nombre completo de los clientes que
--compraron memorias en el mes de marzo del 2008

select cliente.nombre +' '+ cliente.apellido as 'cliente',datename(weekday,venta.fecha)+' '+convert(varchar(2),day(venta.fecha))+' de '+ datename(month,venta.fecha)+' del '+convert(varchar(4),year(venta.fecha)) as 'fecha',producto.descripcion as 'producto' from detalleventa inner join venta on venta.idventa=detalleventa.idventa inner join producto on detalleventa.idproducto=producto.idproducto inner join cliente on cliente.idcliente=venta.idcliente where year(venta.fecha)=2008 and datename(month,venta.fecha)='Marzo' and producto.descripcion like 'memoria%'

BDAvanzada_02

--Listar el nombre completo de los clientes de la zona 1
--que compraron el da 03 de abril del 2008

select distinct cliente.nombre +' '+ cliente.apellido as 'cliente',datename(weekday,venta.fecha)+' '+convert(varchar(2),day(venta.fecha))+' de '+ datename(month,venta.fecha)+' del '+convert(varchar(4),year(venta.fecha)) as 'fecha' from venta inner join cliente on cliente.idcliente=venta.idcliente inner join zona on zona.idzona=cliente.idzona where day(venta.fecha)=3 and datename(month,venta.fecha)='Abril' and year(venta.fecha)=2008 and zona.idzona=1

BDAvanzada_01

--Listar la fecha del día 30 de marzo del año 2008
select datename(weekday,'30/03/2008')