Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/06/2011, 15:06
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Query(condicion multiple)

La primera consulta podría ser algo así, pero desde luego es bastante grande.

La idea es que realizas dos subconsultas: en la primera tomas los clientes que han comprado de la categoria beverages y en la segunda, los clientes que han comprado de la categoría condiments y luego realizas una resta (EXCEPT) para quedarte con los que han comprado beverages pero no condiments.

Código SQL:
Ver original
  1. SELECT     DISTINCT   CompanyName, categoryName,  ContactName
  2. FROM         Categories INNER JOIN
  3.                       Products ON Categories.CategoryID = Products.CategoryID INNER JOIN
  4.                       [ORDER Details] ON Products.ProductID = [ORDER Details].ProductID INNER JOIN
  5.                       Orders ON [ORDER Details].OrderID = Orders.OrderID INNER JOIN
  6.                       Customers ON Orders.CustomerID = Customers.CustomerID
  7. WHERE categoryname = 'beverages'
  8. EXCEPT
  9.  
  10. SELECT     DISTINCT  ContactName
  11. FROM         Categories INNER JOIN
  12.                       Products ON Categories.CategoryID = Products.CategoryID INNER JOIN
  13.                       [ORDER Details] ON Products.ProductID = [ORDER Details].ProductID INNER JOIN
  14.                       Orders ON [ORDER Details].OrderID = Orders.OrderID INNER JOIN
  15.                       Customers ON Orders.CustomerID = Customers.CustomerID
  16. WHERE categoryname = 'condiments'

La segunda consulta sería igual pero usando INTERSECT en vez de EXCEPT