Está en la página 1de 3

--04.

Escriba la instrucción o instrucciones SQL para verificar lo siguiente:

--Si existen DNI Repetidos Si hay empleados Homónimos (Mismo nombre y diferente DNI)

SELECT Dni ,count(*)AS CANTIDAD FROM Empleados_V group by Dni having count(*)>1

--Si hay Empleados repetidos (Mismo nombre y mismo DNI)


SELECT Apaterno,Amaterno,Nombre01,Nombre02 ,dni ,count(*) from Empleados_V
group by Apaterno,Amaterno,Nombre01,Nombre02,dni HAVING count( *) >1
--Si falta llenar algún campo.
select * from Empleados_V where Nombre01=''or Nombre01=''or APaterno=''or
AMaterno=''
--Si existen DNI incorrectos
select dni,len(Dni) as 'cantidad de caracteres' from Empleados_V where len(Dni)<8
SELECT LEN(DNI) FROM Empleados
-- Si en los dni se han ingresado letras.
select * from Empleados_V where Dni like '%[^0-9]%' and (len(Dni)=8)
-- Si existen sueldos con cantidades negativas.

select * from Empleados_V where SueldoMensual<0

--05. Escriba la instrucción o instrucciones para:

--Quienes tienen un solo nombre

select * from Empleados_V where Nombre01=''or Nombre02 ='' or Nombre01 is null or


Nombre02 is null

--Cantidad máxima de hermanos que trabajan como Gerentes.

select APaterno, AMaterno, count(*) from Empleados_V where Cargo='GERENTE' group by


APaterno, AMaterno having count(*)>1

--Quienes tienen 02 nombres como mínimo

select * from Empleados_V where Nombre01 <>''and Nombre02 <> '' or( Nombre01 <>
null and Nombre02 <> null)

--Quienes tienen apellidos compuestos

select * from Empleados_V where (APaterno like '% %' OR AMaterno like '% %' or
APaterno like '%-%' OR AMaterno like '%-%' )
and (APaterno=ltrim(rtrim(Apaterno))) and ( AMaterno=ltrim(rtrim( AMaterno)))

--Quienes ganan el sueldo mínimo (930.00)

select * from Empleados_V where SueldoMensual >930

--Quienes cumplen años este mes y cuantos años cumplen

select nombre01, datepart(year, getdate())-year(FechaNacimiento) as edad from


Empleados_V where month(FechaNacimiento)=4
--Los que ingresaron a trabajar siendo menores de edad
select * from Empleados where year(FechaIngreso)-year(FechaNacimiento)<18
--Los que ingresaron a trabajar teniendo más de 50 años
select * from Empleados_V where year(FechaIngreso)-year(FechaNacimiento)>50

--Todas las mujeres que son jefes


select * from Empleados_V Where cargo ='jefe' and Sexo ='f'
--Los que tienen cantidad de hijos pares
select *from Empleados_V Where Hijos %2 =0
--Los que tienen cantidad de hijos impares
select *from Empleados_V Where Hijos %2 <>0
--Gasto quincenal por concepto de sueldos
select sum (sueldoMensual/2) as gasto_quincena from Empleados_V
--Cantidad total de hijos
select sum(hijos) as hijos from Empleados_V
--Cumpleaños a festejar en cada mes
select MONTH(fechanacimiento) as mes,COUNT(*) as cantidad from Empleados_V group
by MONTH(fechanacimiento)

--Gasto mensual por concepto de sueldos


SELECT SUM(SueldoMensual) FROM EMPLEADOS_V

--Gasto anual por concepto de sueldo sabiendo que en Julio y Diciembre reciben
doble sueldo
SELECT (SUM(SueldoMensual)*12 + sum(SueldoMensual)*2 )FROM EMPLEADOS_V

--06. Escriba la instrucción o instrucciones SQL para:


--Poner los apellidos en mayúsculas y solo la primera letra de cada nombre en
mayúsculas -

SELECT UPPER(LEFT(Apaterno,1))+LOWER(SUBSTRING(Apaterno,2,LEN(Apaterno))) AS
APATERNO,UPPER(LEFT(AMaterno,1))+
LOWER(SUBSTRING(AMaterno,2,LEN(AMaterno))) AS AMATERNO from Empleados_V

--Incrementar a todos los jefes el 10% de sueldo y al resto 5%

UPDATE Empleados SET SueldoMensual=(SueldoMensual+SueldoMensual*0.1) WHERE


codcargo=4

IF @@ROWCOUNT>=0

UPDATE Empleados SET SueldoMensual=(SueldoMensual+SueldoMensual*0.05) where


codcargo<>4

--Quitar los espacios en blanco dejados al inicio o final de los campos.

update empleados set AMaterno=LTRIM(RTRIM(AMaterno)),APaterno=LTRIM(RTRIM(APaterno))


,Nombre01=LTRIM(RTRIM(Nombre01)),Nombre02=LTRIM(RTRIM(Nombre02))
--Por error de digitación en algunos apellidos y nombres se ha ingresado 0 (cero) en
lugar de la letra o. Corregir.

SELECT ISNUMERIC(APaterno),APaterno FROM Empleados where ISNUMERIC(APaterno)>0


select * from Empleados where ( (Apaterno like '%1%' ) OR (Apaterno like '%2%'
) OR (Apaterno like '%3%' )
OR (Apaterno like '%4%' ) OR (Apaterno like '%5%' ) OR (Apaterno like '%6%'
)OR (Apaterno like '%7%' )
OR (Apaterno like '%8%' )OR (Apaterno like '%9%' ) ) OR (AMaterno like '%1%'
) OR (AMaterno like '%2%' )
OR (AMaterno like '%3%' )
OR (AMaterno like '%4%' ) OR (AMaterno like '%5%' ) OR (AMaterno like '%6%'
)OR (AMaterno like '%7%' )
OR (AMaterno like '%8%' )OR (AMaterno like '%9%' )

--Generar un campo llamado Nombre y guardar los apellidos y nombres sin tildes para
realizar búsquedas más rápidas

También podría gustarte