Está usted en Indice > Construcción > Lenguajes > SQL > Lecciones y Paso a Paso > Buscar registros duplicados en SQL
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Buscar registros duplicados en SQL

Cómo buscar registros duplicados en SQL . Clausula Procedure.

Clausula Procedure

Esta cláusula es poco usual y se utiliza para crear una consulta a la misma vez que se ejecuta, opcionalmente define los parámetros de la misma. Su sintaxis es la siguiente:

PROCEDURE NombreConsulta Parámetro1 tipo1, .... ,
ParámetroN tipon ConsultaSQL

En donde:

NombreConsulta Es el nombre con se guardará la consulta en la base de datos.
Parámetro Es el nombre de parámetro o de los parámetros de dicha consulta.
tipo Es el tipo de datos del parámetro
ConsultaSQL Es la consulta que se desea grabar y ejecutar.

PROCEDURE
ListaCategorias;
SELECT DISTINCTROW
NombreCategoria, IdCategoria
FROM
Categorias
ORDER BY
NombreCategoria
(Asigna el nombre Lista_de_categorías a la consulta y la ejecuta.)

PROCEDURE
Resumen
FechaInicio DATETIME,
FechaFinal DATETIME;
SELECT DISTINCTROW
FechaEnvio, IdPedido, ImportePedido, Format(FechaEnvio, "yyyy") AS Año
FROM
Pedidos
WHERE
FechaEnvio Between FechaInicio And FechaFinal
(Asigna el nombre Resumen a la consulta e incluye dos parámetros.)

Búsqueda de Registros Duplicados

Para generar este tipo de consultas lo más sencillo es utilizar el asistente de consultas de Access, editar la sentencia SQL de la consulta y pegarla en nuestro código. No obstante este tipo de consulta se consigue de la siguiente forma:

SELECT DISTINCT Lista de Campos a Visualizar FROM Tabla
WHERE CampoDeBusqueda In
(SELECT CampoDeBusqueda FROM Tabla As psudónimo
GROUP BY CampoDeBusqueda HAVING Count(*) > 1 )
ORDER BY CampoDeBusqueda

Un caso práctico, si deseamos localizar aquellos empleados con igual nombre y visualizar su código correspondiente, la consulta sería la siguiente:

SELECT DISTINCT
Empleados.Nombre, Empleados.IdEmpleado
FROM
Empleados
WHERE
Empleados.Nombre
In (
SELECT Nombre FROM Empleados As Tmp GROUP BY Nombre HAVING Count(*) > 1)
ORDER BY
Empleados.Nombre




Autor: Claudio
http://personal.lobocom.es/claudio/

Usuarios que han visto este tema también han visto...

- Cómo manejar fechas en SQL Server
- Convertir números a diferentes bases con SQL
- Criterios de selección SQL
- Optimizar consultas SQL
- Borrar un registro SQL


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 26-05-2012 a las 09:56:35