Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Parte 4 - Uniendo tablas y consultas

USE jugos_ventas;

SELECT * FROM tabla_de_vendedores;
SELECT * FROM facturas;

-- INNER JOIN
SELECT * FROM tabla_de_vendedores A
INNER JOIN facturas B ON A.MATRICULA = B.MATRICULA;

SELECT A.NOMBRE,B.MATRICULA,COUNT(*) FROM tabla_de_vendedores A
INNER JOIN facturas B ON A.MATRICULA = B.MATRICULA
GROUP BY A.NOMBRE,B.MATRICULA;

-- CROSS JOIN
SELECT A.NOMBRE,B.MATRICULA,COUNT(*) FROM tabla_de_vendedores A, facturas B 
WHERE A.MATRICULA = B.MATRICULA
GROUP BY A.NOMBRE,B.MATRICULA;

-- LEFT JOIN
SELECT COUNT(*) FROM tabla_de_clientes;

SELECT DISTINCT A.DNI,A.NOMBRE,B.DNI FROM tabla_de_clientes A
INNER JOIN facturas B ON A.DNI = B.DNI;

SELECT DISTINCT A.DNI,A.NOMBRE,A.CIUDAD,B.DNI FROM tabla_de_clientes A
LEFT JOIN facturas B ON A.DNI = B.DNI
WHERE B.DNI IS NULL;

-- RIGHT JOIN 
SELECT DISTINCT B.DNI,B.NOMBRE,B.CIUDAD,A.DNI FROM facturas A
RIGHT JOIN tabla_de_clientes B ON A.DNI = B.DNI
WHERE A.DNI IS NULL;


SELECT count(*) FROM tabla_de_clientes;

SELECT * FROM tabla_de_vendedores;

SELECT 
    tabla_de_clientes.NOMBRE, tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE
FROM tabla_de_clientes
INNER JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE
FROM tabla_de_clientes
LEFT JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE,tabla_de_vendedores.VACACIONES
FROM tabla_de_clientes
RIGHT JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE,VACACIONES
FROM tabla_de_clientes
RIGHT JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

-- CROSS JOIN 
SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE,VACACIONES
FROM tabla_de_clientes,tabla_de_vendedores
WHERE tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE,tabla_de_vendedores.VACACIONES
FROM tabla_de_clientes
INNER JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

-- UNION 
SELECT DISTINCT BARRIO FROM tabla_de_clientes;

SELECT DISTINCT BARRIO FROM tabla_de_vendedores;

SELECT DISTINCT BARRIO FROM tabla_de_clientes
UNION
SELECT DISTINCT BARRIO FROM tabla_de_vendedores;

SELECT DISTINCT BARRIO FROM tabla_de_clientes
UNION ALL
SELECT DISTINCT BARRIO FROM tabla_de_vendedores;

SELECT DISTINCT BARRIO,NOMBRE,'Cliente' AS TIPO FROM tabla_de_clientes
UNION
SELECT DISTINCT BARRIO,NOMBRE,'Vendedor' AS TIPO FROM tabla_de_vendedores;

SELECT DISTINCT BARRIO,NOMBRE,'Cliente' AS TIPO_CLIENTE, DNI FROM tabla_de_clientes
UNION
SELECT DISTINCT BARRIO,NOMBRE,'Vendedor' AS TIPO_VENDEDOR,MATRICULA FROM tabla_de_vendedores;

-- FULL JOIN
SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE
FROM tabla_de_clientes
LEFT JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO
UNION
SELECT 
    tabla_de_clientes.NOMBRE,tabla_de_clientes.CIUDAD,tabla_de_clientes.BARRIO,tabla_de_vendedores.NOMBRE
FROM tabla_de_clientes
RIGHT JOIN tabla_de_vendedores ON tabla_de_clientes.BARRIO = tabla_de_vendedores.BARRIO;

-- SUB QUERY
SELECT DISTINCT BARRIO FROM tabla_de_vendedores;

SELECT * FROM tabla_de_clientes
WHERE BARRIO IN ('Condesa','Del Valle','Contadero','Oblatos');

SELECT * FROM tabla_de_clientes
WHERE BARRIO IN (SELECT DISTINCT BARRIO FROM tabla_de_vendedores);

SELECT ENVASE,MAX(PRECIO_DE_LISTA) AS PRECIO_MAXIMO FROM tabla_de_productos
GROUP BY ENVASE;

SELECT X.ENVASE,X.PRECIO_MAXIMO 
FROM (SELECT ENVASE,MAX(PRECIO_DE_LISTA) AS PRECIO_MAXIMO 
    FROM tabla_de_productos
    GROUP BY ENVASE) X
WHERE X.PRECIO_MAXIMO >= 10;

-- VIEWS
SELECT ENVASE,MAX(PRECIO_DE_LISTA) AS PRECIO_MAXIMO FROM tabla_de_productos
GROUP BY ENVASE;

USE `jugos_ventas`;
CREATE  OR REPLACE VIEW `vw_envases_grandes` AS
SELECT ENVASE,MAX(PRECIO_DE_LISTA) AS PRECIO_MAXIMO FROM tabla_de_productos
GROUP BY ENVASE;

SELECT X.ENVASE,X.PRECIO_MAXIMO 
FROM vw_envases_grandes X
WHERE PRECIO_MAXIMO >= 10;

SELECT A.NOMBRE_DEL_PRODUCTO,A.ENVASE,A.PRECIO_DE_LISTA,B.PRECIO_MAXIMO 
FROM tabla_de_productos A 
INNER JOIN vw_envases_grandes B ON A.ENVASE = B.ENVASE;

SELECT A.NOMBRE_DEL_PRODUCTO,A.ENVASE,A.PRECIO_DE_LISTA,ROUND(((A.PRECIO_DE_LISTA/B.PRECIO_MAXIMO)-1)*100,2) AS PORCENTAJE_VARIACION  
FROM tabla_de_productos A 
INNER JOIN vw_envases_grandes B ON A.ENVASE = B.ENVASE;
1 respuesta
solución!

Hola Alexei, espero que estés bien!

Felicidades por tu código y gracias por tu participación aquí en el foro.

Continúa con tus estudios y cualquier duda estaremos aquí.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios