Como depurar tabla SQL Express

01/04/2007 - 13:29 por Carolina Guzman | Informe spam
Hola a todos de nuevo,

Tengo una BBDD en SQL EXPRESS que contiene una tabla con la siguiente
estructura:

PROPIETARIOS

Codigo Int (PK)
Nombre Varchar
NIF Char
Direccion Varchar
CP Char
Localidad Varchar
Provincia Varchar
Telefono1 Numeric
Telefono2 Numeric
Descripcion Varchar
Fecha_Update datetime
Op Char


Mi problema es que tengo varios Propietarios duplicados por nombre, es
decir, que hay varios registros dados de alta con el mismo nombre.:

1 Pedro 19798841h
2 Pedro NULL
3 Pedro NULL
4 Laura NULL
5 Laura 0878776F

Mi pregunta es:
Como puedo depurar la tabla de tal manera que seleccione todos los registros
que tienen el mismo nombre y elimine todos menos uno? ( a ser posible que
además elimine todos los que el campo NIF='NULL')

Os agradezco cualquier ayuda

Un saludo

Carol

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
01/04/2007 - 22:27 | Informe spam
Carolina,

;with cte
as
(
select *, row_number() over(partition by nombre order by NIF DESC) as rn
from dbo.propietarios
)
delete cte
where rn > 1;

Lo que hace la CTE es asignar un numero consecutivo que comienza desde uno,
para cada grupo de filas de un mismo [nombre]. El numero consecutivo se
asigna dandole un order a cada grupo por la columna [NIF] de mayor a menos
para que los valores NULL esten al final.

Recuerda hacer un backup de la db antes de poner este codigo en practica,
puesto que yo no lo he probado.


AMB


"Carolina Guzman" wrote in message
news:%
Hola a todos de nuevo,

Tengo una BBDD en SQL EXPRESS que contiene una tabla con la siguiente
estructura:

PROPIETARIOS

Codigo Int (PK)
Nombre Varchar
NIF Char
Direccion Varchar
CP Char
Localidad Varchar
Provincia Varchar
Telefono1 Numeric
Telefono2 Numeric
Descripcion Varchar
Fecha_Update datetime
Op Char


Mi problema es que tengo varios Propietarios duplicados por nombre, es
decir, que hay varios registros dados de alta con el mismo nombre.:

1 Pedro 19798841h
2 Pedro NULL
3 Pedro NULL
4 Laura NULL
5 Laura 0878776F

Mi pregunta es:
Como puedo depurar la tabla de tal manera que seleccione todos los
registros que tienen el mismo nombre y elimine todos menos uno? ( a ser
posible que además elimine todos los que el campo NIF='NULL')

Os agradezco cualquier ayuda

Un saludo

Carol





Respuesta Responder a este mensaje
#2 Angel Luis
01/04/2007 - 22:43 | Informe spam
Hola Alejandro,

Perdona que me meta en el post, pero me has dejado "impresionado" con la
respuesta.
Este es un tema sobre el que llevo tiempo dando vueltas y de "un plumazo"
solucionado!!!

Espero que a Carolina le sirva como a mi!!!.

Un saludo Alejandro.

Angel Luis

"Alejandro Mesa" escribió en el mensaje
news:
Carolina,

;with cte
as
(
select *, row_number() over(partition by nombre order by NIF DESC) as rn
from dbo.propietarios
)
delete cte
where rn > 1;

Lo que hace la CTE es asignar un numero consecutivo que comienza desde
uno, para cada grupo de filas de un mismo [nombre]. El numero consecutivo
se asigna dandole un order a cada grupo por la columna [NIF] de mayor a
menos para que los valores NULL esten al final.

Recuerda hacer un backup de la db antes de poner este codigo en practica,
puesto que yo no lo he probado.


AMB


"Carolina Guzman" wrote in message
news:%
Hola a todos de nuevo,

Tengo una BBDD en SQL EXPRESS que contiene una tabla con la siguiente
estructura:

PROPIETARIOS

Codigo Int (PK)
Nombre Varchar
NIF Char
Direccion Varchar
CP Char
Localidad Varchar
Provincia Varchar
Telefono1 Numeric
Telefono2 Numeric
Descripcion Varchar
Fecha_Update datetime
Op Char


Mi problema es que tengo varios Propietarios duplicados por nombre, es
decir, que hay varios registros dados de alta con el mismo nombre.:

1 Pedro 19798841h
2 Pedro NULL
3 Pedro NULL
4 Laura NULL
5 Laura 0878776F

Mi pregunta es:
Como puedo depurar la tabla de tal manera que seleccione todos los
registros que tienen el mismo nombre y elimine todos menos uno? ( a ser
posible que además elimine todos los que el campo NIF='NULL')

Os agradezco cualquier ayuda

Un saludo

Carol









Respuesta Responder a este mensaje
#3 Alejandro Mesa
01/04/2007 - 22:50 | Informe spam
Angel Luis,

Espero te sea de ayuda y en caso de que el problema de Carolina no sea
semejante al tuyo, puedes postear el tuyo y veremos como buscarle una
solucion.

Saludos,

AMB


"Angel Luis" <angel.luisPONARROBAsoport-ePONPUNTOes> wrote in message
news:
Hola Alejandro,

Perdona que me meta en el post, pero me has dejado "impresionado" con la
respuesta.
Este es un tema sobre el que llevo tiempo dando vueltas y de "un plumazo"
solucionado!!!

Espero que a Carolina le sirva como a mi!!!.

Un saludo Alejandro.

Angel Luis

"Alejandro Mesa" escribió en el mensaje
news:
Carolina,

;with cte
as
(
select *, row_number() over(partition by nombre order by NIF DESC) as rn
from dbo.propietarios
)
delete cte
where rn > 1;

Lo que hace la CTE es asignar un numero consecutivo que comienza desde
uno, para cada grupo de filas de un mismo [nombre]. El numero consecutivo
se asigna dandole un order a cada grupo por la columna [NIF] de mayor a
menos para que los valores NULL esten al final.

Recuerda hacer un backup de la db antes de poner este codigo en practica,
puesto que yo no lo he probado.


AMB


"Carolina Guzman" wrote in message
news:%
Hola a todos de nuevo,

Tengo una BBDD en SQL EXPRESS que contiene una tabla con la siguiente
estructura:

PROPIETARIOS

Codigo Int (PK)
Nombre Varchar
NIF Char
Direccion Varchar
CP Char
Localidad Varchar
Provincia Varchar
Telefono1 Numeric
Telefono2 Numeric
Descripcion Varchar
Fecha_Update datetime
Op Char


Mi problema es que tengo varios Propietarios duplicados por nombre, es
decir, que hay varios registros dados de alta con el mismo nombre.:

1 Pedro 19798841h
2 Pedro NULL
3 Pedro NULL
4 Laura NULL
5 Laura 0878776F

Mi pregunta es:
Como puedo depurar la tabla de tal manera que seleccione todos los
registros que tienen el mismo nombre y elimine todos menos uno? ( a ser
posible que además elimine todos los que el campo NIF='NULL')

Os agradezco cualquier ayuda

Un saludo

Carol













Respuesta Responder a este mensaje
#4 Angel Luis
01/04/2007 - 22:56 | Informe spam
El problema era similar, lógicamente con otra estructura de tablas..
Eres un crack!!

Un saludo desde León.

Angel Luis


"Alejandro Mesa" escribió en el mensaje
news:%
Angel Luis,

Espero te sea de ayuda y en caso de que el problema de Carolina no sea
semejante al tuyo, puedes postear el tuyo y veremos como buscarle una
solucion.

Saludos,

AMB


"Angel Luis" <angel.luisPONARROBAsoport-ePONPUNTOes> wrote in message
news:
Hola Alejandro,

Perdona que me meta en el post, pero me has dejado "impresionado" con la
respuesta.
Este es un tema sobre el que llevo tiempo dando vueltas y de "un plumazo"
solucionado!!!

Espero que a Carolina le sirva como a mi!!!.

Un saludo Alejandro.

Angel Luis

"Alejandro Mesa" escribió en el mensaje
news:
Carolina,

;with cte
as
(
select *, row_number() over(partition by nombre order by NIF DESC) as rn
from dbo.propietarios
)
delete cte
where rn > 1;

Lo que hace la CTE es asignar un numero consecutivo que comienza desde
uno, para cada grupo de filas de un mismo [nombre]. El numero
consecutivo se asigna dandole un order a cada grupo por la columna [NIF]
de mayor a menos para que los valores NULL esten al final.

Recuerda hacer un backup de la db antes de poner este codigo en
practica, puesto que yo no lo he probado.


AMB


"Carolina Guzman" wrote in message
news:%
Hola a todos de nuevo,

Tengo una BBDD en SQL EXPRESS que contiene una tabla con la siguiente
estructura:

PROPIETARIOS

Codigo Int (PK)
Nombre Varchar
NIF Char
Direccion Varchar
CP Char
Localidad Varchar
Provincia Varchar
Telefono1 Numeric
Telefono2 Numeric
Descripcion Varchar
Fecha_Update datetime
Op Char


Mi problema es que tengo varios Propietarios duplicados por nombre, es
decir, que hay varios registros dados de alta con el mismo nombre.:

1 Pedro 19798841h
2 Pedro NULL
3 Pedro NULL
4 Laura NULL
5 Laura 0878776F

Mi pregunta es:
Como puedo depurar la tabla de tal manera que seleccione todos los
registros que tienen el mismo nombre y elimine todos menos uno? ( a ser
posible que además elimine todos los que el campo NIF='NULL')

Os agradezco cualquier ayuda

Un saludo

Carol

















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