jueves, 3 de noviembre de 2011

Consultas

BASE DE DATOS: CICLISMO

JOIN
Mostrar los nombres de los productos y el nombre de su respectivo tipo:
SELECT P.[Nombre producto], T.[Nombre tipo producto]
FROM Productos P JOIN Tipo_Productos T ON (P.[ID tipo producto]=T.[ID tipo producto])

Mostrar los nombres de los empleados y su respectivo pais:
SELECT E.Nombre, D.Pais
FROM Empleados E JOIN Direccion_Empleados D ON (E.[ID empleado]=D.[ID empleado])


HAVING
Mostrar los tipos de productos con ID menor a 4 y el precio total de cada uno:
SELECT T.[Nombre tipo producto], SUM(P.Precio) 'Precio total'
FROM Productos P JOIN Tipo_Productos T ON (P.[ID tipo producto]=T.[ID tipo producto])
GROUP BY T.[Nombre tipo producto]
HAVING T.[Nombre tipo producto]<4


Mostrar la cantidad de empleados en los países Canadá y USA:
SELECT D.Pais, COUNT (E.Nombre) 'cantidad de nombres por pais'
FROM Empleados E JOIN Direccion_Empleados D ON (E.[ID empleado]=D.[ID empleado])
GROUP BY D.Pais
HAVING D.Pais='Canada' OR D.Pais='USA'

GROUP BY
Mostrar los tipos de productos y el precio total de cada uno:
SELECT T.[Nombre tipo producto], SUM(P.Precio) 'Precio total'
FROM Productos P JOIN Tipo_Productos T ON (P.[ID tipo producto]=T.[ID tipo producto])
GROUP BY T.[Nombre tipo producto]

Mostrar la cantidad de empleados por cada país:
SELECT D.Pais, COUNT (E.Nombre) 'cantidad de nombres por pais'
FROM Empleados E JOIN Direccion_Empleados D ON (E.[ID empleado]=D.[ID empleado])
GROUP BY D.Pais


JOIN, WHERE, GROUP BY, HAVING

Mostrar los tipos de productos con ID menor a 4 y precio unitario menor que 16:
SELECT T.[Nombre tipo producto], SUM(P.Precio) 'Precio total'
FROM Productos P JOIN Tipo_Productos T ON (P.[ID tipo producto]=T.[ID tipo producto])
WHERE P.Precio>16
GROUP BY T.[Nombre tipo producto]
HAVING T.[Nombre tipo producto]<4


Mostrar la cantidad de empleados de los países Canadá y USA que tengan anexo mayor que 500 :
SELECT D.Pais, COUNT (E.Nombre) 'cantidad de nombres por pais'
FROM Empleados E JOIN Direccion_Empleados D ON (E.[ID empleado]=D.[ID empleado])
WHERE E.Anexo>500
GROUP BY D.Pais
HAVING D.Pais='Canada' OR D.Pais='USA'


OUTER JOIN
Left Join:
SELECT P.[Nombre producto], P.Color.P[M/F],P.Precio,T.[Nombre tipo producto]
FROM Productos P LEFT JOIN Tipo_Productos T ON (P.[ID tipo producto]=T.[ID tipo producto])


Right Join:
SELECT E.Nombre,E.[Telefono domicilio],D.Ciudad,D.Pais
FROM Empleados E RIGHT JOIN Direccion_Empleados D ON (E.[ID empleado]=D.[ID empleado])


No hay comentarios:

Publicar un comentario