sólo registros duplicados

10/05/2006 - 12:09 por Joan Q. | Informe spam
Hola a todos/as

Debe ser una tontería pero no me sale como sacar sólo los registros
duplicados (aquellos que quedarían eliminados con un group by)

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
10/05/2006 - 12:14 | Informe spam
Si postearas el script de creación de tu tabla sería más fácil para
nosotros ayudarte.

En cualquier caso, echa un vistazo a la solución que dio al problema el
compañero Norman A. Armas (y que en su momento fue premiado en una revista
especializada):

******************************************************
Crear una tabla temporal para test
SELECT IDENTITY( int ) AS IDCol,
a1.au_id, a1.au_fname, a1.au_lname,
a1.phone, a1.address, a1.city, a1.state, a1.zip
INTO #a
FROM pubs..authors AS a1
CROSS JOIN pubs..authors AS a2
CROSS JOIN pubs..authors AS a3
CREATE CLUSTERED INDEX IX_a_name ON #a( au_lname, au_fname )
ALTER TABLE #a ADD CONSTRAINT PK_a_IDCol PRIMARY KEY NONCLUSTERED
( IDCol )


-
delete from #a where idcol not in(
select
min(idcol) as IDCol
from #a
group by au_fname, au_lname)


select * from #a


******************************************************



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Joan Q." escribió en el mensaje
news:uG#
Hola a todos/as

Debe ser una tontería pero no me sale como sacar sólo los registros
duplicados (aquellos que quedarían eliminados con un group by)



Respuesta Responder a este mensaje
#2 Joan Q.
10/05/2006 - 12:36 | Informe spam
Gracias Carlos,

select t.codigoempresa, t.cod_trabajador, t.nombre
from trabajadores t
group by t.codigoempresa, t.cod_trabajador, t.nombre

Sería saber cuantos trabajadores (t.nombre) pertenecen al mismo tiempo a más
de una empresa (t.codigoempresa)
No puedo poner el count(*) porque me pide group by y si hago el group by
t.nombre pierdo la información de en que empresa está.



"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Si postearas el script de creación de tu tabla sería más fácil para
nosotros ayudarte.

En cualquier caso, echa un vistazo a la solución que dio al problema el
compañero Norman A. Armas (y que en su momento fue premiado en una revista
especializada):

******************************************************
Crear una tabla temporal para test
SELECT IDENTITY( int ) AS IDCol,
a1.au_id, a1.au_fname, a1.au_lname,
a1.phone, a1.address, a1.city, a1.state, a1.zip
INTO #a
FROM pubs..authors AS a1
CROSS JOIN pubs..authors AS a2
CROSS JOIN pubs..authors AS a3
CREATE CLUSTERED INDEX IX_a_name ON #a( au_lname, au_fname )
ALTER TABLE #a ADD CONSTRAINT PK_a_IDCol PRIMARY KEY NONCLUSTERED
( IDCol )


-
delete from #a where idcol not in(
select
min(idcol) as IDCol
from #a
group by au_fname, au_lname)


select * from #a


******************************************************



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Joan Q." escribió en el mensaje
news:uG#
Hola a todos/as

Debe ser una tontería pero no me sale como sacar sólo los registros
duplicados (aquellos que quedarían eliminados con un group by)







Respuesta Responder a este mensaje
#3 Miguel Egea
10/05/2006 - 12:42 | Informe spam
select t.codigoempresa, t.cod_trabajador, t.nombre,
(Select count(*) from Trabajadores t2 where
t2.cod_trabajador=t.codTrabajador) NoEmpresas
from trabajadores t
where 1< (Select count(*) from Trabajadores t2 where
t2.cod_trabajador=t.codTrabajador)
group by t.codigoempresa, t.cod_trabajador, t.nombre

no lo he probado, pero creo que funcionará.

"Joan Q." escribió en el mensaje
news:%
Gracias Carlos,

select t.codigoempresa, t.cod_trabajador, t.nombre
from trabajadores t
group by t.codigoempresa, t.cod_trabajador, t.nombre

Sería saber cuantos trabajadores (t.nombre) pertenecen al mismo tiempo a
más de una empresa (t.codigoempresa)
No puedo poner el count(*) porque me pide group by y si hago el group by
t.nombre pierdo la información de en que empresa está.



"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Si postearas el script de creación de tu tabla sería más fácil para
nosotros ayudarte.

En cualquier caso, echa un vistazo a la solución que dio al problema
el
compañero Norman A. Armas (y que en su momento fue premiado en una
revista
especializada):

******************************************************
Crear una tabla temporal para test
SELECT IDENTITY( int ) AS IDCol,
a1.au_id, a1.au_fname, a1.au_lname,
a1.phone, a1.address, a1.city, a1.state, a1.zip
INTO #a
FROM pubs..authors AS a1
CROSS JOIN pubs..authors AS a2
CROSS JOIN pubs..authors AS a3
CREATE CLUSTERED INDEX IX_a_name ON #a( au_lname, au_fname )
ALTER TABLE #a ADD CONSTRAINT PK_a_IDCol PRIMARY KEY NONCLUSTERED
( IDCol )


-
delete from #a where idcol not in(
select
min(idcol) as IDCol
from #a
group by au_fname, au_lname)


select * from #a


******************************************************



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Joan Q." escribió en el mensaje
news:uG#
Hola a todos/as

Debe ser una tontería pero no me sale como sacar sólo los registros
duplicados (aquellos que quedarían eliminados con un group by)











Respuesta Responder a este mensaje
#4 Joan Q.
10/05/2006 - 12:59 | Informe spam
Muchas gracias

"Miguel Egea" escribió en el mensaje
news:
select t.codigoempresa, t.cod_trabajador, t.nombre,
(Select count(*) from Trabajadores t2 where
t2.cod_trabajador=t.codTrabajador) NoEmpresas
from trabajadores t
where 1< (Select count(*) from Trabajadores t2 where
t2.cod_trabajador=t.codTrabajador)
group by t.codigoempresa, t.cod_trabajador, t.nombre

no lo he probado, pero creo que funcionará.

"Joan Q." escribió en el mensaje
news:%
Gracias Carlos,

select t.codigoempresa, t.cod_trabajador, t.nombre
from trabajadores t
group by t.codigoempresa, t.cod_trabajador, t.nombre

Sería saber cuantos trabajadores (t.nombre) pertenecen al mismo tiempo a
más de una empresa (t.codigoempresa)
No puedo poner el count(*) porque me pide group by y si hago el group by
t.nombre pierdo la información de en que empresa está.



"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Si postearas el script de creación de tu tabla sería más fácil para
nosotros ayudarte.

En cualquier caso, echa un vistazo a la solución que dio al problema
el
compañero Norman A. Armas (y que en su momento fue premiado en una
revista
especializada):

******************************************************
Crear una tabla temporal para test
SELECT IDENTITY( int ) AS IDCol,
a1.au_id, a1.au_fname, a1.au_lname,
a1.phone, a1.address, a1.city, a1.state, a1.zip
INTO #a
FROM pubs..authors AS a1
CROSS JOIN pubs..authors AS a2
CROSS JOIN pubs..authors AS a3
CREATE CLUSTERED INDEX IX_a_name ON #a( au_lname, au_fname )
ALTER TABLE #a ADD CONSTRAINT PK_a_IDCol PRIMARY KEY NONCLUSTERED
( IDCol )


-
delete from #a where idcol not in(
select
min(idcol) as IDCol
from #a
group by au_fname, au_lname)


select * from #a


******************************************************



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Joan Q." escribió en el mensaje
news:uG#
Hola a todos/as

Debe ser una tontería pero no me sale como sacar sólo los registros
duplicados (aquellos que quedarían eliminados con un group by)















Respuesta Responder a este mensaje
#5 Wilbert Jose Magaña Lopez
10/05/2006 - 16:06 | Informe spam
si me describes un poco como esta tu informacion tal vez pueda ayudarte...

"Joan Q." escribió en el mensaje
news:uG#
Hola a todos/as

Debe ser una tontería pero no me sale como sacar sólo los registros
duplicados (aquellos que quedarían eliminados con un group by)



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida