Confirmo mi sospecha. En este segmento de tu post:
Cita: select nombre from clientes where cve_cliente=(select cve_cliente from ventas where cve_producto=(select cve_producto from productos where nombre like "%sabritas%"));
la segunda subconsulta tiene un LIKE, pero estás buscando los códigos por igual a.
El error lógico es que si usas LIKE hay que suponer (forzosamente) que puede devolver uno o más registros, y en ese contexto no puedes usar igual (=), sino IN...
Usala así:
Código sql:
Ver originalSELECT nombre
FROM clientes
WHERE cve_clientes ANY (SELECT cve_clientes
FROM `ventas`
WHERE MONTH(fecha) = 7
AND cve_producto IN (SELECT cve_producto
FROM producto
WHERE nombre LIKE '%sabrita%')
);
Respecto a esta consulta:
Cita: 2. seleccionar el nombre del cliente y la cantidad de veces que este ha realizado una venta.
No se puede realizar
de una forma decente sin usar al menos un JOIN, porque la cantidad de compras la tienes en una tabla y el nombre en la otra....