miércoles, 6 de julio de 2016

Receta T-SQL No. 4-14: ¿Cómo Encontrar Registros Faltantes?

Índice

1. Introducción
2. Palabras Clave
3. Problema
4. Solución
5. Discusión de la Solución
5.1 Operador EXCEPT
6. Práctica: Recuperación de Registros Faltantes
7. Conclusiones
8. Literatura & Enlaces

1. Introducción

¡T-SQL es genial! Esta nueva receta T-SQL enseña cómo encontrar los registros faltantes en un un conjunto respecto a otro. Este proceso es análogo a encontrar la diferencia entre conjuntos. El ejemplo de la sección práctica demuestra cómo obtener el listado de productos que no cuentan con una oferta de promoción.

2. Palabras Clave

  • Diferencia conjuntos
  • EXCEPT
  • Registro

3. Problema

Encontrar los registros faltantes en una tabla respecto a otra.

4. Solución

El operador EXCEPT permite hallar los registros/filas faltantes en conjunto respecto a otro.

5. Discusión de la Solución

5.1 Operador EXCEPT

[Nota: Una descripción detallada de este operador se halla en Receta T-SQL No. 4-12: ¿Cómo Usar el Operador de Diferencia EXCEPT en T-SQL?.]

Aún aquí se da un ejemplo de cómo usar este operador para obtener los IDs de productos que no cuentan con una oferta de promoción.

SELECT ProductID
FROM Production.Product
EXCEPT
SELECT ProductID
FROM Sales.SpecialOfferProduct;

6. Práctica: Búsqueda de Registros Faltantes

Se retoma el ejemplo de la sección anterior no sólo para mostrar el ID de los productos sin ofertas especiales, sino además el nombre del producto.

SELECT P.ProductID,
P.Name
FROM Production.Product P
WHERE NOT EXISTS (SELECT *
FROM Sales.SpecialOfferProduct SOP
WHERE SOP.ProductID = P.ProductID);

Aunque en este código no se usa explícitamente el operador EXCEPT, se define una subconsulta anidada (correlación) para recuperar los productos que no -NOT EXISTS- cuentan con una oferta de promoción.

Este el resultado de ejecución en Microsoft SQL Management Studio
Productos sin ofertas especiales
Figura 1. Productos sin ofertas especiales.

7. Conclusiones

En esta receta se comprendió cómo obtener el listado de registros faltantes en una tabla respecto otra. Esta operación resulta interesante en situaciones donde se requiere aplicar la operación de diferencia entre conjunto de registros.

La siguiente receta T-SQL, y la última de la serie de Consultas sobre Múltiples Tablas, enseña cómo comparar dos tablas.

8. Literatura & Enlaces


Brimhall, J., Dye, D., Gennick, J., Roberts, A., Sheffield, W. (2012). SQL Server 2012 T-SQL Recipes - A Problem-Solution Approach. United States: Apress.


Receta T-SQL No. 4-12: ¿Cómo Usar el Operador de Diferencia EXCEPT en T-SQL? (2016, junio 07). Recuperado desde: https://ortizol.blogspot.com.co/2016/07/receta-t-sql-no-4-12-como-usar-el-operador-de-diferencia-except-en-t-sql.html


V

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.