Cuando escribes un SELECT tienes la posibilidad de decirle que deseas que te devuelva todos los resultados o solamente aquellos que son distintos a los demás.

Por ejemplo, supongamos que deseamos conocer todas las unidades de medida utilizadas por nuestros productos. La columna donde se guarda ese dato se llama PRD_UNIMED.

SELECT
   DISTINCT
   PRD_UNIMED
FROM
   PRODUCTOS

La cláusula DISTINCT le obliga al Firebird a mostrarnos solamente una vez a cada unidad de medida. Eso quiere decir que aunque haya 240 productos cuya unidad de medida sea KLG (kilogramos) la palabra KLG aparecerá una sola vez en el resultado. ¿Por qué? porque escribimos la cláusula DISTINCT.

En la tabla VENTASCAB guardamos los datos de cabecera de cada venta realizada (sucursal, fecha, identificador del cliente, etc.), ¿cuáles son los años que tenemos registrados en esa tabla? ¿se encuentran allí las ventas que hicimos en el año 2006?. Lo podremos saber fácilmente con este SELECT:

SELECT
   DISTINCT
   EXTRACT(YEAR FROM VTC_FECHAX)
FROM
   VENTASCAB

cada uno de los años de las ventas registradas aparecerá una vez y solamente una vez. Por ejemplo, podríamos obtener:

2008
2009
2010
2011
2012
2013

entonces, aunque la tabla VENTASCAB tenga miles y miles de filas solamente veríamos 6 filas, las que corresponden a cada uno de los años en que se registraron ventas.

 

Anuncios