consultas y más consultas sql

Upload: jesus-daniel

Post on 09-Jul-2015

257 views

Category:

Documents


0 download

TRANSCRIPT

Consultas y ms Consultas![quote=[u]Ejemplos para NORTHWIND(Base de Datos ejemplo del SQL Server 2000)] /*--------------------------------------*/ /*seleccionamos y concatenamos apellido y nombre, ttulo de cortesa , y la fecha entre un rango determinado */ select lastname+','+firstname,titleofcourtesy,birthdate from employees where (birthdate between '1937/1/1' and '1958/1/1') and ((titleofcourtesy = 'dr.')or (titleofcourtesy = 'mr.'))

/*--------------------------------------*/ /*obtenemos fecha y hora del sistema*/ select getdate() /*--------------------------------------*/ /*seleccionamos todos los campos de los empleados y lo ordenamos por fecha de cumpleaos de forma ascendente*/ select * from employees order by birthdate asc /*--------------------------------------*/ /*seleccionamos todos los campos de los empleados en que el apellido este dentro de un rango de letras*/ select * from employees where lastname like '[c-j]%' /*--------------------------------------*/ /*seleccionamos todos los campos de los empleados en que el ttulo de cortesa no sea o */ select * from employees where titleofcourtesy not in('Mr.','Dr.') /*--------------------------------------*/

/*seleccionamos todos los campos de los empleados en que el ttulo de cortesa sea */ select * from employees where titleofcourtesy = 'ms.' /*--------------------------------------*/ /*seleccionamos la profesin, el nombre concatenado al ttulo de cortesa, el apellido y la direccin concatenado con la ciudad ordenado por la direccion de manera descendente*/ select title Ttulo, firstname+'('+titleofcourtesy+')' Nombre, LastName Apellido, address+'('+city+')' Direccin from employees order by address desc /*--------------------------------------*/ /*seleccionamos el apellido concatenado con el nombre y cuidad concatenado con pais ordenado por el cdigo del empleado de manera descendente*/ select lastname+','+firstname ApellidoyNombre, city+'('+country+')' CiudadyPais from employees where country = 'usa' order by employeeID desc

/*-------------------------------------*/ /*seleccionamos los nombre de las compaias donde la regin sea igual a */ select companyname NombredelaCompaa, region from customers where region is NULL /*-------------------------------------*/ /*al apellido le concatenamo el ttulo de cortesa solo cuando este es o */ select lastname+'['+TitleOfCourtesy+']' NombreyTtulo

from employees where TitleOfCourtesy in ('Mr.','Dr.') /*-------------------------------------*/ /*al apellido le concatenamo el ttulo de cortesa solo cuando este NO sea o */ select lastname+'['+TitleOfCourtesy+']' NombreyTtulo from employees where TitleOfCourtesy NOT IN ('Mr.','Dr.') /*-------------------------------------*/ /* vamos a convertir la fecha en formatos cortos ddmmaaaa , aaaamm */ select convert (varchar(11),birthdate,110) from employees select convert (varchar(8),birthdate,111) from employees /*-------------------------------------*/ /*las persona que nacieron antes de 1/1/95*/ select birthdate Cumpleaos from employees where birthdate < '1955-01-01'

/*--------------------------------------*/ /*Utilizamos Substring para cortar el string*/ select title Ttulo, substring(title,0,6) Ttulo from employees /*---------------------------------------*/ /*Cortamos las fechas de cumpleaos y las convertimos a char*/ select substring(convert(varchar(4),Birthdate,0),1,4)mes, substring(convert(varchar(7),Birthdate,0),4,3)da, substring(convert(varchar(12),Birthdate,0),7,5)ao from employees /*---------------------------------------*/

/*seleccionamos la primera mitad de los empleados*/ select top 50 percent * from employees /*---------------------------------------*/ /*contamos la cantidad de empleados*/ select count (employeeid) from employees /*----------------------------------------*/ /*seleccionamos apellidos y renombramos lo ttulos de cortesa para algunos casos*/ select lastname Apellido, case [titleofcourtesy] when 'Ms.' then 'Seora' when 'Dr.' then 'Doctor' else 'Otros' end Sexo from employees

Lab 5:Base de Datos Ejemplo(aqu le explico como montar la base y les doy un par de consultas de ejemplo)

Para poder montar la base de datos de ejemplo(lab5) deben crear una nueva base de datos. La manera ms sencilla es desde el Administrador Corporatio, le damos click derecho sobre la carpeta Bases de Datos y creamos un Nueva Base de Datos.

Debe tener el mismo nombre que la base ejemplo asi que pongan "lab5".

Luego vamos a las zolapas de Archivos de Datos y de Registro de Transacciones, ahi deben darle la ruta donde se va a guardar la base, una vez seleccionado aceptamos.

Uma vez creada la base de datos desconectamos el motor desde el cono de Administracin de Servicioscon click derecho... Detener.

Ahora solo debemos sobreescribir los archivos .data y .log que ubicamos hace un rato con los

archivo que aqui les traigo! Ahi nomas desde el cono de Administracin de Servicioscon click derecho... Iniciar.

descargarpor Rapidshare

por Archivos Backup

[quote=[u]Ejemplos para LAB5(Base de Datos ejemplo subida por m)] /*seleccionamos todos los telefonos que comiencen con caracterstica */ select telefono, substring(telefono,0,6) caracteristica from apuestas where substring(telefono,0,6)= 03777 /*_______________________________________________________*/

/*idem al ejercicio anterior pero utilizamos la sentencia */ select telefono, substring(telefono,0,6) caracteristica from apuestas where[ color=fuchsia]substring(telefono,0,6) like '%03777%' /*_______________________________________________________*/

/*seleccionamos todos los telefonos que terminen en */ select count(telefono) from apuestas where substring(telefono,11,2)= 91

/*_______________________________________________________*/

/*seleccionamos el da de la fecha obtenida del sistema*/ select datepart(d,getdate()) /*_______________________________________________________*/

/*seleccionamos el da de la fecha determinada*/ select datepart(d,'2/3/2007') /*_______________________________________________________*/

/*seleccionamos el mes de la fecha determinada*/ select datepart(m,'2/3/2007') /*_______________________________________________________*/

/*seleccionamos el ao de la fecha determinada*/ select datepart(yy,'2/3/2007') /*_______________________________________________________*/

/*seleccionamos fecha determinada y le incrementamos cinco das*/ select dateadd(day,5,'2/3/2007') /*_______________________________________________________*/

/*seleccionamos fecha determinada y le incrementamos dos

meses*/ select dateadd(month,2,'2/3/2007') /*_______________________________________________________*/

/*seleccionamos fecha determinada y le incrementamos tres aos*/ select dateadd(year,3,'2/3/2007') /*_______________________________________________________*/

/*nacidos entre las 13 y 19hs del 19/9/1980*/ select * from apuestas where (FECHANACIMIENTO between '19/9/1980 00:00:00.000' and '19/9/1980 13:00:00.000') /*_______________________________________________________*/

/*nacidos entre 19/09/1985 y cinco dias despues(con dateadd)*/ select * from apuestas where (fechanacimiento between '19/9/1985' and dateadd(day,1,'19/9/1985')) /*_______________________________________________________*/

/* cambiar los codigos de zonas por NORTE, SUR,etc*/ select *, case [ZONA] when 1 then 'Norte' when 2 then 'Sur' when 3 then 'Oeste' when 4 then 'Este' end as ZONA from apuestas

/*_______________________________________________________*/

/* calcular el maximo y el minimo de los montos*/ select min(monto) mnimo,max(monto) mximo from apuestas /*_______________________________________________________*/

/*cual fue la ultima apuesta y la primera apuesta*/ select max(fapuesta) ultima,min(fapuesta) primera from apuestas /*_______________________________________________________*/

/*seleccionar nombre, apellido y telfono donde el telefono comience con */ select nombre,apellido,telefono from apuestas where substring(telefono,7,2) like '%45%' /*_______________________________________________________*/

/*seleccionar nombre, apellido, telfono y si el tel. comienza con entonces es de y si no es */ select nombre,apellido,telefono, case substring(telefono,0,6) when 03777 then 'Bella Vista' else 'Otros' end as Nombre from apuestas /*_______________________________________________________*/

/*segn el sexo anteponer al nombre y al apellido el ttulo de cortesa tambien seleccionar telfono,monto,ciudad mientras que la fecha de nacimiento sea menor a */ /*ltrim y rtrim quita espacios en blanco a izquierda y derecha respectivamente*/ select case ltrim(rtrim(sexo)) when 'F' then 'Seora' when 'M' then 'Seor' end +' '+ ltrim(rtrim(nombre))+' '+ltrim(rtrim(apellido)), telefono,monto,ciudad from apuestas where fechanacimiento p.stock /*_______________________________________________________*/

/*listado de todos los proveedores de la provincia de ctes*/

select p.nombre ,u.provincia from proveedores p inner joinubicacion u on p.idubicacion = u.idubicacion where u.provincia = 'Corrientes' /*_______________________________________________________*/

/*total de proveedores por provincia*/ select u.provincia,count(p.idubicacion) [Cant. Prov]from proveedores p inner join ubicacion u on p.idubicacion = u.idubicacion group by u.provincia /*_______________________________________________________*/

/*total de proveedores por provincia pero excluir bella vista*/ select u.localidad,count(p.idubicacion) [Cant. Prov]from proveedores p inner join ubicacion u on p.idubicacion = u.idubicacion group by u.localidad having u.localidad not in ('bella vist') /*_______________________________________________________*/

/*listado idpedido,idcliente, fechapedido nombresucursal,ubicacion(cuidad,procincia(nombre),zona(nomb rezona))*/ select Q1.idpedido,Q1.id_cliente,Q1.apellido,Q1.nombre,ub.localida d + '('+ub.provincia +'),('+ ub.zona +')' Ubicacin from ubicacion ub inner join (select cli.id_cliente,cli.apellido,cli.nombre,cab.idpedido,cli.idU bicacion from cabpedido cab inner join cliente cli on cab.id_cliente = cli.id_cliente)Q1 on ub.idubicacion=Q1.idUbicacion where ub.localidad not in ('RESISTENCI')

/*_______________________________________________________*/ /*consulta de insersin en la tabla proveedores*/ insert into proveedores(idproveedores,nombre,direccion,telefono,idubica cion) values ('6','Potatoe','Av. Sarmiento 1234','3722-5859','5')

/*_______________________________________________________*/

/*PRODUCTOS DE LOS PROVEEDORES UNILEVER Y FRUTALINDA*/ select p.idproducto ID, p.nombre,prov.nombre proveedor from producto p inner join proveedores prov on p.idproveedores=prov.idproveedores where prov.nombre like('%UNILEVER') UNION ALL select p.idproducto id, p.nombre,prov.nombre proveedor from producto p inner join proveedores prov on p.idproveedores=prov.idproveedores where prov.nombre like('%FRUTALINDA') /*_______________________________________________________*/

/*lista total de ventas por sucural frutalinda*/ select s.nombre sucursal,q3.proveedor,q3.tot from sucursal s inner join (select q1.suc ,Q2.proveedor,sum(cant) tot from (select idsucursal suc,idproducto p,cantidad cant from cabpedido c inner joindetallepedido d on c.idpedido =d.idpedido )Q1 INNER JOIN (select p.idproducto id, p.nombre ,prov.nombre proveedor from producto p inner join proveedores prov on p.idproveedores=prov.idproveedores where prov.nombre like('%FRUTALINDA') )Q2 ON Q1.P=Q2.id group by q1.suc,q2.proveedor )q3

on q3.suc=s.idsucursal order by tot desc /*_______________________________________________________*/

/*detalle de pedidos sucursal total*/ select ped,s.nombre sucursal,sum(tl) total from sucursal s inner join (select ped,suc,p,p.nombre,cantidad,p.precio,cantidad*p.precio tl from producto p inner join (select c.idpedido ped,idsucursal suc,idproducto p,cantidad from cabpedido c inner join detallepedido d on c.idpedido =d.idpedido)q1 on q1.p=p.idproducto)q2 on s.idsucursal=q2.suc group by ped,s.nombre /*_______________________________________________________*/

/*el pedido cuyo monto es mayor*/ select top 1 ped,s.nombre sucursal,sum(tl) total from sucursal s inner join (select ped,suc,p,p.nombre,cantidad,p.precio,cantidad*p.precio tl from producto p inner join (select c.idpedido ped,idsucursal suc,idproducto p,cantidad from cabpedido c inner join detallepedido d on c.idpedido =d.idpedido)q1 on q1.p=p.idproducto )q2 on s.idsucursal=q2.suc group by ped,s.nombre order by total desc

/*_______________________________________________________*/

/*ubicaciones relaciones porveedores y clienetes , los de resistencias*/

Select cli.nombre,ub.localidad,ub.idubicacion from cliente cli inner join ubicacion ub on cli.idubicacion=ub.idubicacion where ub.localidad='RESISTENCI' group by cli.nombre,ub.localidad,ub.idubicacion union all select P.nombre,ub.localidad,ub.idubicacion from proveedores P inner join ubicacion ub on P.idubicacion=ub.idubicacion where ub.localidad='RESISTENCI' group by P.nombre,ub.localidad, ub.idubicacion[/quote]