Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2012, 16:35
Avatar de websistems
websistems
 
Fecha de Ingreso: octubre-2010
Mensajes: 69
Antigüedad: 14 años, 1 mes
Puntos: 0
Querys en Sql Server

Tengo estas 3 tablas

use SUMMER

create table cliente
(id char(3 )primary key,
apellidos varchar(50),
nombres varchar(50),
sexo char(1))


create table sueldos
(id char(3),
periodo date,
sueldo int)

create table estados
(id char(3),
estado varchar(25))


alter table sueldos
add foreign key (id) references cliente(id)

alter table estados
add foreign key (id) references cliente(id)



insert into cliente (id,apellidos,nombres,sexo) values ('001','Perez','Juan','M')
insert into cliente (id,apellidos,nombres,sexo) values ('002','Lopez','Carla','F')
insert into cliente (id,apellidos,nombres,sexo) values ('003','Pinedo','Jorge','M')
insert into cliente (id,apellidos,nombres,sexo) values ('004','Torres','Jose','M')
insert into cliente (id,apellidos,nombres,sexo) values ('005','Zapata','Pamela','F')
insert into cliente (id,apellidos,nombres,sexo) values ('006','Zavaleta','Sofia','F')


select * from sueldos

insert into sueldos (id,periodo,sueldo) values ('001','15-01-2012',1500)
insert into sueldos (id,periodo,sueldo) values ('001','01-01-2012',1800)
insert into sueldos (id,periodo,sueldo) values ('002','15-01-2012',1900)
insert into sueldos (id,periodo,sueldo) values ('002','01-01-2012',2200)
insert into sueldos (id,periodo,sueldo) values ('003','15-01-2012',1500)
insert into sueldos (id,periodo,sueldo) values ('004','01-01-2012',1800)
insert into sueldos (id,periodo,sueldo) values ('005','15-01-2012',2500)
insert into sueldos (id,periodo,sueldo) values ('005','01-01-2012',1000)
insert into sueldos (id,periodo,sueldo) values ('006','15-01-2012',1500)


insert into estados (id,estado) values ('001','No Activo')
insert into estados (id,estado) values ('002','Activo')
insert into estados (id,estado) values ('003','No Activo')
insert into estados (id,estado) values ('004','Activo')
insert into estados (id,estado) values ('005','Activo')
insert into estados (id,estado) values ('006','Activo')



1.- Seleccionar los sueldos de todo el personal femenino activo que este por debado del promedio de sueldos.

begin tran

declare @prom int

SELECT @prom= AVG(dbo.sueldos.sueldo)
FROM dbo.cliente INNER JOIN
dbo.sueldos ON dbo.cliente.id = dbo.sueldos.id INNER JOIN
dbo.estados ON dbo.cliente.id = dbo.estados.id
WHERE (dbo.cliente.sexo = 'F') AND (dbo.estados.estado = 'aCTIVO')


select cliente.id,cliente.apellidos,cliente.nombres,min(s ueldos.sueldo )
from cliente inner join sueldos on cliente.id=sueldos.id
where sueldos.sueldo<=@prom
group by cliente.id,cliente.apellidos,cliente.nombres



2.- Seleccionar solamente el sueldo mayor del personal femenino que tiene como maximo 1 sueldo en un periodo.

SELECT MAX(dbo.sueldos.sueldo) AS Expr2, dbo.sueldos.id, dbo.sueldos.periodo
FROM dbo.cliente INNER JOIN
dbo.sueldos ON dbo.cliente.id = dbo.sueldos.id INNER JOIN
dbo.estados ON dbo.cliente.id = dbo.estados.id
WHERE (dbo.cliente.sexo = 'F') AND (dbo.estados.estado = 'aCTIVO')
GROUP BY dbo.sueldos.id, dbo.sueldos.periodo
HAVING (DAY(dbo.sueldos.periodo) = '01')


3.- Incrementar en 20% al sueldo minimo del personal femenino activo

-- con est ame pordrian ayudar por favor?

Gracias