3.201 cursos gratis
6.233.243 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > SQL > Caso práctico Referncia cruzadas

SQL

Autor: Claudio
Curso:  4,49/5 4,49/5 (792 opiniones) |34042 alumnos|Fecha publicación: 10/05/2004
Capítulos del curso

Capítulo 21:

 Caso práctico Referncia cruzadas

Un caso práctico: Se trata de resolver el siguiente problema: tenemos una tabla de productos con dos campos, el código y el nombre del producto, tenemos otra tabla de pedidos en la que anotamos el código del producto, la fecha del pedido y la cantidad pedida. Deseamos consultar los totales de producto por año, calculando la media anual de ventas.

Estructura y datos de las tablas:

ARTICULOSPEDIDOS
IDNombreIDFechaCantidad
1Zapatos111/11/1996250
2Pantalones211/11/1996125
3Blusas311/11/1996520
112/10/199650
204/10/1996250
305/08/1996100
101/01/199740
202/08/199760
305/10/199770
112/12/19978
215/12/1997520
317/10/19971.250

Para resolver la consulta planteamos la siguiente consulta:
TRANSFORM
Sum(Pedidos.Cantidad) AS Resultado
SELECT
Nombre AS Producto, Pedidos.Id AS Código,
Sum(Pedidos.Cantidad) AS TOTAL,
Avg(Pedidos.Cantidad) AS Media
FROM
Pedidos, Artículos
WHERE
Pedidos.Id = Artículos.Id
GROUP BY
Pedidos.Id, Artículos.Nombre
PIVOT
Year(Fecha)

Y obtenemos el siguiente resultado:

ProductoCódigoTotalMedia19961997
Zapatos13488730048
Pantalones2955238,75375580
Blusas319404856201320

Comentarios a la consulta:
La cláusula TRANSFORM indica el valor que deseamos visualizar en las columnas que realmente pertenecen a la consulta, en este caso 1996 y 1997, puesto que las demás columnas son opcionales. SELECT especifica el nombre de las columnas opcionales que deseamos visualizar, en este caso Producto, Código, Total y Media, indicando el nombre del campo que deseamos mostrar en cada columna o el valor de la misma. Si incluimos una función de cálculo el resultado se hará basándose en los datos de la fila actual y no al total de los datos.

FROM especifica el origen de los datos. La primera tabla que debe figurar es aquella de donde deseamos extraer los datos, esta tabla debe contener al menos tres campos, uno para los títulos de la fila, otros para los títulos de la columna y otro para calcular el valor de las celdas.

En este caso en concreto se deseaba visualizar el nombre del producto, como en la tabla de pedidos sólo figuraba el código del mismo se añadió una nueva columna en la cláusula select llamada Producto que se corresponda con el campo Nombre de la tabla de artículos. Para vincular el código del artículo de la tabla de pedidos con el nombre del mismo de la tabla artículos se insertó la cláusula INNER JOIN.

La cláusula GROUP BY especifica el agrupamiento de los registros, contrariamente a los manuales de instrucción esta cláusula no es opcional ya que debe figurar siempre y debemos agrupar los registros por el campo del cual extraemos la información. En este caso existen dos campos de los que extraemos la información: pedidos.cantidad y artículos.nombre, por ello agrupamos por los campos.

Para finalizar la cláusula PIVOT indica el nombre de las columnas no opcionales, en este caso 1996 y 1997 y como vamos a el dato que aparecerá en las columnas, en este caso empleamos el año en que se produjo el pedido, extrayéndolo del campo pedidos.fecha.

Otras posibilidades de fecha de la cláusula pivot son las siguientes:

Para agrupamiento por Trimestres:
PIVOT "Tri " & DatePart("q",[Fecha]); Para agrupamiento por meses (sin tener en cuenta el año)
PIVOT Format([Fecha],"mmm") In ("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"); Para agrupar por días
PIVOT Format([Fecha],"Short Date");

Capítulo siguiente - Criterios de selección
Capítulo anterior - Ejemplo Referencia cruzada
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 792 opiniones. Opina sobre este curso.

Descarga el PDF gratis

Cursos similares a SQL


Cursos Valoración Alumnos Vídeo
PHP y MySQL. Aplicaciones Web: programación (primera parte)
Programación de aplicaciones Web con PHP y MySQL. Con este curso aprenderás el funcionamiento de una Web Site, la programación en el cliente ... [02/12/08]
 4,83/5 2.402  
PHP y MySQL. Aplicaciones Web: programación PHP I (quinta parte)
Programación de aplicaciones Web con PHP y MySQL. Ahora estudiaremos el Lenguaje de programación PHP. Aprende ahora las formas de escribir las etiquetas ... [02/12/08]
 3,50/5 995  
Primeros pasos con XML y XSL
XML es el acrónimo del inglés eXtensible Markup Language cuyo objetivo principal es conseguir una página web más semántica. Inicialmente nace como sucesor del HTML, separ... [10/09/04]
 4,25/5 6.778  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail