Ver Mensaje Individual
  #10 (permalink)  
Antiguo 15/07/2013, 20:04
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: agrupar consulta y mostrar el id mayor del group by

Cita:
Ahora, quiero que de ese resultado me excluya a los productos que son de tipo Servicios excepto a uno donde su ID='000022'
Esta es la única parte relevante para la solución de lo que comentas, y tiene un pequeño problema... Implica condiciones interexcluyentes. Simplemente las condiciones se contradicen (la que excluye todo A, no permitirá recuperar un A exclusivo).
Es decir, no puedes plantear una consulta que haga eso, al menos en una simple consulta SELECT. Para poder lograr que te devuelva eso debes usar UNION, y combinar ambas busquedas.
Por otro lado, sigues complicando la consulta sin necesidad... Trata de escribir las cosas sin subconsultas, dentro de lo posible. No siempre se necesitan, y en este caso es seguro que no.
Yo intentaría:
Código MySQL:
Ver original
  1.     ID, Nombre, Modelo, Precio
  2. FROM    
  3.     (SELECT
  4.         `Catalogo_Producto_Id` `ID`,
  5.         `tipo_producto` `Nombre`,
  6.         `Modelo`,
  7.         `Precio`
  8.     FROM
  9.         `catalogo_productos`
  10.     WHERE
  11.         `Estatus_Salida` = 'No'
  12.         AND `tipo_producto` != 'servicio'
  13.     UNION
  14.     SELECT
  15.         `Catalogo_Producto_Id`,
  16.         `tipo_producto`,
  17.         `Modelo`,
  18.         `Precio`
  19.     FROM
  20.         `catalogo_productos`
  21.     WHERE
  22.         `Estatus_Salida` = 'No'
  23.         AND `tipo_producto` = 'servicio'
  24.         AND `Catalogo_Producto_Id` = '000022'
  25.     GROUP BY `modelo`) T1
  26. WHERE `Modelo` LIKE CONCAT('%', 'n', '%')
  27. ORDER BY `nombre`;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)