Sunteți pe pagina 1din 10

COMERCIALIZACION

--consultas

use Comercializacion

/*1.listar todos los datos de los clientes que no esten


suspendidos y se han registradodurante
el mes de julio del 2012.El listado debe estar ordenado por
fecha de registro*/

SELECT estado_Cli,fechaReg_Cli
FROM Cliente
WHERE estado_Cli<>'Suspendido' AND (fechaReg_Cli BETWEEN
'01/07/2012' AND '31/07/2012')
ORDER BY fechaReg_Cli

/*2.SELECCIONAR LA RAZON SOCIAL Y RUC DE LOS CLIENTES QUE


PERTENENCEN A LA CATEGORIA DE POLLERIA.
EL LISTADODEBE ESTAR ORDENADO POR RUC DE MANERA DESCENDENTE*/

SELECT razonSoc_Cli,ruc_Cli AS ruc


FROM Cliente c INNER JOIN CategoriaCliente cat ON
c.codigo_CaC=cat.codigo_CaC
WHERE nombre_CaC='Polleria'
ORDER BY ruc_Cli DESC

/*3.SELECCIONAR EL CODIGO,NOMBRE DE LA CATEGORIA,RAZON SOCIAL Y


CREDITO DE LOS CLIENTES
QUE SE ENCUENTRAN EN ESTADO SUPENDIDO.EL LISTADO DEBE ESTAR
ORDENADO POR EL NOMBRE
DE LA CATEGORIA DEL CLIENTE*/

SELECT codigo_Cli,nombre_CaC,razonSoc_Cli,credito_cli
FROM Cliente c INNER JOIN CategoriaCliente cat ON
c.codigo_CaC=cat.codigo_CaC
WHERE estado_Cli='Suspendido'
ORDER BY nombre_CaC

/*4.SELECCIONAR LA RAZON SOCIAL,RUC Y PAGINA WEB DE LOS CLIENTES


QUE SUPEREN LOS 900 SOLES
DE CREDITO Y PERTENESCAN A UNA CATEGORIA DE CLIENTE QUE NO ESTE
VIGENTE*/

SELECT razonSoc_Cli,ruc_Cli,paginaWeb_Cli
FROM Cliente c INNER JOIN CategoriaCliente cat ON
c.codigo_CaC=cat.codigo_CaC
WHERE credito_cli>900 AND estado_Cli='Suspendido'
ORDER BY nombre_CaC
/*5.SELECCIONAR LA RAZON SOCIAL Y EL ESTADO DE LOS 3 CLIENTES
CON MAYOR CREDITO*/

SELECT TOP 3 razonSoc_Cli,estado_Cli


FROM Cliente
ORDER BY credito_cli DESC

/*6.SELECCIONAR LA RAZON SOCIAL Y FECHA DE REGISTRO DEL CLIENTE


QUE TIENE LA FECHA
DE REGISTO MAS RECIENTE.SI HUBIERA EMPATES TAMBIEN MOSTRARLOS*/

SELECT TOP 3 razonSoc_Cli,fechaReg_Cli


FROM Cliente
ORDER BY fechaReg_Cli DESC

/*7.LISTAR TODOS LOS DATOS DE LOS CLIENTES QUE NO TENGAN PAGINA


WED*/

SELECT
codigo_Cli,razonSoc_Cli,ruc_Cli,credito_cli,paginaWeb_Cli,fechaR
eg_Cli,
estado_Cli,codigo_CaC
FROM Cliente
WHERE paginaWeb_Cli IS NULL

/*8.LISTAR RAZON SOCIAL,RUC Y CREDITO DE LOS CLIENTES QUE TIENEN


LA PALABRA DEL EN SU RAZON SOCIAL*/

SELECT razonSoc_Cli,ruc_Cli,credito_cli
FROM Cliente
WHERE razonSoc_Cli LIKE '%del%'

/*9.MOSTRAR EL NOMBRE DE LAS CATEGORIA QUE NO TIENEN NINGUN


CLIENTE REGISTRADO*/

SELECT nombre_CaC,codigo_Cli
FROM Cliente c RIGHT JOIN CategoriaCliente cat ON
c.codigo_CaC=cat.codigo_CaC
WHERE codigo_Cli IS NULL

/*10.MOSTAR EL NOMBRE DE LAS CATEGORIAS QUE SOLO TIENEN CLIENTES


ACTIVOS*/

SELECT nombre_CaC
FROM Cliente c INNER JOIN CategoriaCliente cat ON
c.codigo_CaC=cat.codigo_CaC
WHERE estado_Cli='Activo'
DIPLOMADO
--consultas Diplomado

use Diplomados

/*1.SELECCIONAR NOMBRE Y COSTO DE LOS DIPLOMADOS VIGENTES.EL


RESULTADO
DEBE ESTAR ORDENADO POR NOMBRE*/
SELECT*FROM Diplomado

SELECT nombre_Dip,costo_Dip
FROM Diplomado
WHERE vigencia_Dip =1
ORDER BY nombre_Dip

/*2.SELECCIONAR EL NOMBRE DE LOS CURSOS QUE NO PERTENECEN AL


DIPLOMADO
CODIGO 1*/

SELECT nombre_Dip
FROM Diplomado
WHERE codigo_Dip<>1

/*3.SELECCIONAR EL CODIGO,NOMBRE Y HORAS DE LOS CURSOS NO


VIGENTES.EL
RESULTADO DE ESTAR ORDENADO POR HORAS DE MANERA DESCENDENTE*/

SELECT codigo_Cur,nombre_Cur,horas_Cur
FROM Curso
WHERE vigencia_Cur=0
ORDER BY horas_Cur DESC

/*4.SELECCIONAR EL NOMBRE DE LOS CURSOS VIGENTES QUE


CORRESPONDEN
AL DIPLOMADO SEGURIDAD DE LA INFORMACION*/

SELECT nombre_Cur,nombre_Dip
FROM Curso cur INNER JOIN Diplomado dip ON
cur.codigo_Dip=dip.codigo_Dip
WHERE vigencia_Dip = 1 OR nombre_Dip LIKE 'Seguridad de la
informacion'

/*5.SELECCIONAR EL NOMBRE Y HORAS DE LOS CURSOS QUE SUPERAN LAS


24 HORAS */

SELECT nombre_Cur,horas_Cur
FROM Curso
WHERE horas_Cur>24
/*6.SELECCIONAR EL NOMBRE DEL DIPLOMADO QUE TIENE EL MAYOR
COSTO*/

SELECT TOP 3 nombre_Dip


FROM Diplomado
ORDER BY costo_Dip DESC

/*7.SELECCIONAR EL NOMBRE DEL CURSO QUE TIENE MENOS HORAS,


SI HUBIERA EMPATES TAMBIEN MOSTARLO*/

SELECT TOP 3 nombre_Cur,horas_Cur


FROM Curso
ORDER BY horas_Cur ASC

/*8.SELECCIONAR LOS CURSOS QUE TIENEN EN SU NOMBRE LA PALABRA


GESTION*/

SELECT nombre_Cur
FROM Curso
WHERE nombre_Cur LIKE '%Gestión%'

/*9.SELECCIONAR EL NOMBRE DE LOS DIPLOMADOS QUE NO TIENEN NINGUN


CURSO REGISTRADO*/

SELECT nombre_Dip
FROM Diplomado dip LEFT JOIN Curso cr ON
dip.codigo_Dip=cr.codigo_Dip
WHERE codigo_Cur IS NULL

/*10. SELECCIONAR EL NOMBRE DE LOS DIPLOMADOS QUE NO TIENEN


NINGUN CURSO VIGENTE*/

SELECT nombre_Dip
FROM Diplomado dip INNER JOIN Curso cr ON
dip.codigo_Dip=cr.codigo_Dip
WHERE vigencia_Cur=0
PEDIDO
sp_helpconstraint pedido

--1
SELECT nombre_Cli, direccion_Cli, nombre_Dis,
CASE vigencia_Cli
WHEN 1 THEN 'VIGENTE'
ELSE 'NO VIGENTE'
END AS Vigencia
FROM Cliente c INNER JOIN Distrito d
ON c.codigo_Dis = d.codigo_Dis
WHERE telefono_Cli IS NULL AND ruc_Cli LIKE '10%'
ORDER BY nombre_Cli

/*2.- Mostrar el nombre y ruc de los clientes que han realizado


por lo menos
un pedido en el año 2014. El resultado debe estar ordenado por
ruc de manera
descendente*/

SELECT*FROM Pedido

SELECT nombre_Cli, ruc_Cli


FROM Cliente c INNER JOIN Pedido p
ON c.codigo_Cli = p.codigo_Cli
WHERE fecha_Ped BETWEEN '01-01-2014' AND '31-12-2014'
ORDER BY ruc_Cli DESC

--3
SELECT TOP 1 codigo_Pro AS Codigo, nombre_Pro AS nombre,
existencias_Pro
FROM Producto
WHERE vigencia_Pro = 1
ORDER BY precioVen_Pro DESC

--4
SELECT*FROM Cliente
SELECT*FROM Pedido

SELECT nombre_Cli AS Nombre, ruc_Cli AS RUC , telefono_Cli AS


Teléfono
FROM Cliente c LEFT JOIN Pedido p
ON c.codigo_Cli = p.codigo_Cli
WHERE numero_Ped IS NULL
ORDER BY ruc_Cli DESC

--5
SELECT nombre_Cli AS Nombre, ruc_Cli AS
RUC,RTRIM(direccion_Cli)+' - '+RTRIM(nombre_Dis)+' -
'+RTRIM(nombre_Pro)
+' - '+RTRIM(nombre_Dep) AS direccion
FROM ((Cliente c INNER JOIN Distrito d ON
c.codigo_Dis=d.codigo_Dis)
INNER JOIN Provincia p ON d.codigo_Pro = p.codigo_Pro)
INNER JOIN Departamento dp ON p.codigo_Dep=dp.codigo_Dep
ORDER BY nombre_Dep, nombre_Pro, nombre_Dis

--6
select*from Pedido, Producto

SELECT p.numero_Ped, fecha_Ped,


CASE estado_Ped
WHEN 'P' THEN 'Pendiente'
WHEN 'A' THEN 'Atendido'
ELSE 'Anulado'
END AS estado
FROM (Pedido p INNER JOIN DetallePedido d ON
p.numero_Ped=d.numero_Ped)
INNER JOIN Producto pr ON d.codigo_Pro=pr.codigo_Pro
WHERE nombre_Pro = 'escoba' AND cantidad_DeP>=3
ORDER BY fecha_Ped

--7
SELECT p.numero_Ped, fecha_Ped, precioVen_DeP,cantidad_DeP,
importe=cantidad_DeP*precioVen_DeP
FROM Pedido p INNER JOIN DetallePedido d ON
p.numero_Ped=d.numero_Ped
WHERE fecha_Ped BETWEEN '01/04/2014' AND '30/04/2014'

/*8.Listar el nombre, precio y categoría de los productos que se


han
vendido en el año 2013. El resultado debe estar ordenado por
nombre de la
categoría y por precio*/

SELECT nombre_Pro AS Nombre, precioVen_Pro AS Precio, nombre_CaP


AS Categoria
FROM ((Pedido p INNER JOIN DetallePedido Dp ON
p.numero_Ped=Dp.numero_Ped)
INNER JOIN Producto pr ON Dp.codigo_Pro = pr.codigo_Pro)
INNER JOIN CategoriaProducto cap ON pr.codigo_CaP=cap.codigo_CaP
Where fecha_Ped BETWEEN '01/04/2013' AND '31/12/2013'
ORDER BY nombre_CaP, precioVen_Pro
/*9.Listar el nombre y ruc de los clientes que tienen teléfono,
están
vigentes y su nombre empieza con la letra “L”. El resultado debe
estar
ordenado por ruc y nombre de manera descendente*/

SELECT*FROM Cliente

SELECT nombre_Cli AS Nombre, ruc_Cli AS RUC


FROM Cliente
WHERE telefono_Cli IS NOT NULL AND vigencia_Cli = 1 AND
nombre_Cli LIKE 'L%'
ORDER BY ruc_Cli DESC, nombre_Cli DESC

/*10.Listar el nombre de los distritos que tienen al menos un


cliente
no vigente. El resultado debe estar ordenado por nombre de
distrito*/

SELECT*FROM Distrito, Cliente

SELECT* --nombre_Dis
FROM Distrito d INNER JOIN Cliente c ON d.codigo_Dis =
c.codigo_Dis
WHERE vigencia_Cli = 0 --AND vigencia_Cli>= 1
ORDER BY nombre_Dis

/*11.Listar el nombre, ruc, dirección y nombre del distrito


donde residen
que no han hecho ningún pedido. El resultado debe estar
ordenado por ruc
de manera descendente*/

SELECT * FROM Cliente , DetallePedido

SELECT nombre_Cli AS Nombre, ruc_Cli AS RUC, direccion_Cli AS


Direccion, nombre_Dis AS Distrito
FROM (Cliente c LEFT JOIN Pedido p ON
c.codigo_Cli=p.codigo_Cli)
LEFT JOIN Distrito d ON c.codigo_Dis = d.codigo_Dis
WHERE numero_Ped = 0
ORDER BY ruc_Cli DESC
/*12.Listar el número y fecha de los pedidos que han solicitado
por lo menos
un producto de la categoría MUEBLES. El listado debe estar
ordenado por fecha*/
SELECT*FROM CategoriaProducto

SELECT p.numero_Ped , fecha_Ped as Fecha


FROM ((Pedido p INNER JOIN DetallePedido dt ON
p.numero_Ped=dt.numero_Ped)
INNER JOIN Producto pr ON dt.codigo_Pro=pr.codigo_Pro)
INNER JOIN CategoriaProducto c ON pr.codigo_CaP=c.codigo_CaP
WHERE nombre_CaP = 'MUEBLES'
ORDER BY fecha_Ped ASC

EMPRESA
--PRACTICA Nº 4
USE empresa

/*
1.- Listar el numero de seguro social, el nombre completo y el
salario
de los tres empleados de sexo masculino y que no sean cesantes
que tienen los mas altos sueldos.
*/

SELECT TOP 3 e.nss_Emp,RTRIM(apellidoPat_Emp)+' '+RTRIM


(apellidoMat_Emp)+' '+nombres_Emp, salario_Emp
FROM Empleado e
WHERE sexo_Emp = 1 AND estado_Emp IN ('A' , 'V')
ORDER BY salario_Emp DESC

/*
2.- Listar el numero de seguro social, el nombre completo y el
salario
de los tres empleados de sexo masculino y que no sean cesantes
que tienen los mas altos sueldos.
*/

SELECT TOP 2 nombre_Pro, presupuesto_Pro, fechaIni_Pro,


fechafin_Pro, jefePro_Asi,
RTRIM(apellidoPat_Emp)+' '+RTRIM (apellidoMat_Emp)+'
'+nombres_Emp AS nombre
FROM (Proyecto p INNER JOIN Asignacion a
ON p.numero_Pro = a.numero_Pro) INNER JOIN Empleado e
ON e.nss_Emp = a.nss_Emp
WHERE jefePro_Asi = 1
ORDER BY presupuesto_Pro ASC
/*
3.- Listar los parentescos que existen en la tabla Dependiente,
eliminando los duplicados y ordenados alfabéticamente.
*/

SELECT DISTINCT parentesco_Depe


FROM Dependiente
ORDER BY parentesco_Depe ASC

/*
4.- Listar el nombre completo, fecha de nacimiento y fecha de
ingreso cuyo apellido materno termina con la letra "a". El
resultado debe estar ordenado por fecha de nacimiento y fecha de
ingreso
*/

SELECT RTRIM(apellidoPat_Emp)+' '+RTRIM (apellidoMat_Emp)+'


'+nombres_Emp AS nombre,
fechaNac_Emp, fechaIng_Emp
FROM Empleado
WHERE apellidoMat_Emp LIKE '%a' --o 'A%'
ORDER BY fechaNac_Emp ASC, fechaIng_Emp ASC

/*
5.- Listar el numero, nombre y estado de los proyectos cuyo
nombre
lleve la palabra "sistema". El resultado debe estar ordenado por
el
presupuesto de manera descendente.
*/

SELECT*FROM Proyecto

SELECT numero_Pro, nombre_Pro AS nombre, estado_Pro AS estado,


presupuesto_Pro
FROM Proyecto
WHERE nombre_Pro LIKE '%Sistema%'
ORDER BY presupuesto_Pro DESC

/*
6.- Listar el nombre y vigencia de los depatamentos cuyo nombre
solo tenga 9 caracteres. El resultado debe estar ordenado por el
nombre
de manera ascendente.
*/

SELECT nombre_Dep AS Nombre, vigencia_Dep AS Vigencia


FROM Departamento
WHERE LEN(nombre_Dep)=9
ORDER BY nombre_Dep ASC

/*
7.- Listar todos los datos de los dependientes cuyo tercer
caracter en el apellido paterno tenga la letra "g". El listado
debe
estar ordenado por fecha de nacimiento de manera ascendente y
por nombre de manera descendente.
*/
SELECT*FROM Dependiente

SELECT nss_Emp, numero_Depe, nombres_Depe,


apellidoPat_Depe,apellidoMat_Depe,
sexo_Depe, fechaNac_Depe,parentesco_Depe
FROM Dependiente
WHERE apellidoPat_Depe LIKE '__g%'
ORDER BY fechaNac_Depe ASC, nombres_Depe DESC