Cómo buscar registros duplicados en SQL . 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.)
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
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
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.