Cita:
Iniciado por Libras Y si haces algo asi:
Código SQL:
Ver originalCREATE TABLE #temp
(
code INT,
iencucod INT,
duracion INT
)
INSERT INTO #temp VALUES (1,2999,1062)
INSERT INTO #temp VALUES (2,2999,610)
INSERT INTO #temp VALUES (3,2999,34)
INSERT INTO #temp VALUES (4,6170,447)
INSERT INTO #temp VALUES (5,15729,1148)
INSERT INTO #temp VALUES (6,15729,241)
INSERT INTO #temp VALUES (7,15729,53)
INSERT INTO #temp VALUES (8,38314,1029)
INSERT INTO #temp VALUES (9,38314,256)
SELECT code,duracion,iencucod FROM #temp WHERE
CONVERT(VARCHAR(20),duracion) + '#' + CONVERT(VARCHAR(20),iencucod) IN
(
SELECT CONVERT(VARCHAR(20),MAX(duracion)) + '#' + CONVERT(VARCHAR(20),iencucod) FROM #temp GROUP BY iencucod
)
Saludos!!
Me sirvió el código, gracias. Pero hay un pequeño inconveniente, mi tabla puede variar, puede darse el caso de que tenga duraciones iguales:
insert into #temp values (1,2999,1062)
insert into #temp values (2,2999,1062)
insert into #temp values (3,2999,34)
insert into #temp values (4,6170,447)
insert into #temp values (5,15729,1148)
insert into #temp values (6,15729,241)
insert into #temp values (7,15729,53)
insert into #temp values (8,38314,1029)
insert into #temp values (9,38314,256)
en este caso no me elimina los duplicados 1,2999, 1062 y 2,2999,1062.
Mi objetivo es eliminar duplicados y dejar el de mayor duración, en este último caso dejar cualquiera de los dos ya que tienen duración igual.
Gracias por la ayuda brindada.