SQL - Ayuda:en Sentencia SQL (un join)

 
Vista:

Ayuda:en Sentencia SQL (un join)

Publicado por Charli (3 intervenciones) el 01/08/2002 16:53:15
Hola a todos!! Actualmente uso 2 sentencias sql y ademas luego aun he de tratar los datos. Me podeis ayudar a realizar una solo sentencia SQL que lo haga todo????
Me explico: tengo 2 tablas :
EQUIPOS con nombreEquipo y codigoEquipo,
y JUGADORES con nombreJugador, fechaAlta,codigoEquipo.
¿que quiero hacer? Pues quiero eliminar todos aquellos jugadores con fecha de alta anterior a 6 meses de la fecha actual, siempre que eso no represente reducir el equipo al que pertenezca en mas de un 40%.

Gracias de antemano.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda:en Sentencia SQL (un join)

Publicado por Islas, Isaías (5072 intervenciones) el 02/08/2002 00:43:06
Espero te sirva, la creación de la tabla y la inserccion de los datos fue para probar el script. Saludos.

/*
CREATE TABLE JUGADORES (NombreJugador char(30), FechaAlta datetime, CodigoEquipo int)
insert into JUGADORES values('Francisco Garcia', '2002-01-01', 1)
insert into JUGADORES values('Pelos', '2002-01-02', 1)
insert into JUGADORES values('Sapos', '2002-05-01', 1)
insert into JUGADORES values('Colmena', '2002-07-01', 1)
insert into JUGADORES values('Alacran', '2002-08-01', 1)
insert into JUGADORES values('Chango Garcia', '2002-01-01', 2)
insert into JUGADORES values('Alfredo Garcia', '2002-03-01', 2)
insert into JUGADORES values('Miroslav Garcia', '2002-05-01', 2)
insert into JUGADORES values('Hugo Garcia', '2002-07-01', 2)
insert into JUGADORES values('Pedro Garcia', '2002-01-01', 3)
insert into JUGADORES values('Halcon Garcia', '2002-01-01', 3)
insert into JUGADORES values('Maturana Garcia', '2002-01-01', 3)
insert into JUGADORES values('JC Garcia', '2002-03-01', 3)
insert into JUGADORES values('JP Garcia', '2002-03-01', 3)
insert into JUGADORES values('LM Contreras', '2002-04-01', 3)
insert into JUGADORES values('Mustafa Garcia', '2002-04-01', 3)
insert into JUGADORES values('Clodoaldo Garcia', '2002-05-01', 3)
insert into JUGADORES values('Rivelino Garcia', '2002-05-01', 3)
insert into JUGADORES values('Cruif Garcia', '2002-07-01', 3)
*/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda:en Sentencia SQL (un join)

Publicado por Islas, Isaías (5072 intervenciones) el 02/08/2002 00:44:22
-- Saco el Total de jugadores que son de 6 meses de antiguedad
create table #TablaTemp (CodigoEquipo int, JugadoresOut int, JugadoresTotal int)

-- Inserto los Totales por equipo
INSERT INTO #TablaTemp
SELECT CodigoEquipo, 0, COUNT(CodigoEquipo) FROM JUGADORES GROUP BY CodigoEquipo

-- Inserto los que deben ELIMINARSE
INSERT INTO #TablaTemp
SELECT CodigoEquipo, COUNT(CodigoEquipo) , 0
FROM JUGADORES
WHERE fechaAlta <= dateadd(mm, -6, getdate())
GROUP BY CodigoEquipo

-- Elimino los registros en CUESTION, siempre que su porcentaje no rebase el 39%
DELETE JUGADORES WHERE CodigoEquipo IN(
SELECT a.CodigoEquipo --, SUM(a.JugadoresOut) * 100 / SUM(b.JugadoresTotal) AS PORCENTAJE
FROM #TablaTemp a, #TablaTemp b
WHERE a.CodigoEquipo = b.CodigoEquipo
GROUP BY a.CodigoEquipo
HAVING SUM(a.JugadoresOut) * 100 / SUM(b.JugadoresTotal) >= 40) -- Podria manejarse como parametro
AND fechaAlta <= dateadd(mm, -6, getdate())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda:en Sentencia SQL (un join)

Publicado por Charli (3 intervenciones) el 02/08/2002 12:34:56

Muchas gracias. Perfecto !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar