1
respuesta

Consulta

"Supongamos que tienes una base de datos que almacena información sobre una tienda en línea. Tienes tres tablas: 'Clientes' con columnas como 'ID', 'Nombre' y 'Dirección'; 'Pedidos' con columnas como 'ID', 'Cliente_ID' y 'Fecha'; y 'Productos' con columnas como 'ID', 'Nombre' y 'Precio'. Ahora, ¿cómo escribirías una consulta SQL para obtener el nombre de los clientes que han realizado al menos dos pedidos diferentes en los últimos 30 días?"

1 respuesta

¡Hola Estudiante!

Para obtener el nombre de los clientes que han realizado al menos dos pedidos diferentes en los últimos 30 días, puedes utilizar la siguiente consulta SQL:

SELECT c.Nombre
FROM Clientes c
INNER JOIN Pedidos p1 ON c.ID = p1.Cliente_ID
INNER JOIN Pedidos p2 ON c.ID = p2.Cliente_ID
INNER JOIN Productos pr1 ON p1.ID = pr1.ID
INNER JOIN Productos pr2 ON p2.ID = pr2.ID
WHERE p1.Fecha >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
AND p2.Fecha >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
AND p1.ID <> p2.ID
AND pr1.ID <> pr2.ID

En esta consulta, utilizamos una combinación de INNER JOIN para unir las tablas de Clientes, Pedidos y Productos. Luego, filtramos los resultados utilizando la cláusula WHERE para asegurarnos de que estamos obteniendo clientes que han realizado al menos dos pedidos diferentes en los últimos 30 días.

Espero que esta respuesta te haya sido útil. ¡Buenos estudios!

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