Ver Mensaje Individual
  #14 (permalink)  
Antiguo 14/06/2009, 00:33
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultas MySQL

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 original
  1. SELECT nombre
  2. FROM clientes
  3. WHERE cve_clientes ANY (SELECT cve_clientes
  4.     FROM `ventas`
  5.     WHERE MONTH(fecha) = 7
  6.         AND cve_producto IN (SELECT cve_producto
  7.                              FROM producto
  8.                              WHERE nombre LIKE '%sabrita%')
  9.     );

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....
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)