title: SQL Select where two particular items not sold on same date to same customer
body: <p>I'm trying to get all orders where item of type A is on the order, but item of type B is not also on the order.  Unfortunately, the table structure has some deficiencies which make this a little more difficult than I thought it would be.</p>
  
  <p><b>DB Issues:</b> <br/>
  -There is no "Orders" table, only a "Order_Lines" table.  However, I can assume that any Order_Lines with the same "OrderDate" field and same customer (see below) are all part of the same order.</p>
  
  <p>-A new "Customer" record is created for every transaction (yikes!), so the "CustID" field is useless.  However, I can assume that any Customer who has the same "FirstName" and "LastName" is the same.</p>
  
  <p><b>DB layout:</b></p>
  
  <pre><code>Order_Lines:
  OrderLineID   CustID  ProductID      OrderDate
  -----------   -----   -----------    ----------
  10            5       50             2011-08-01
  20            6       60             2011-08-01
  30            7       50             2011-08-02
  40            8       55             2011-08-03
  50            9       70             2011-08-03
  
  Customer:
  CustID   FirstName   LastName
  -----    ---------   ---------
  5        Bill        Smith
  6        Bill        Smith
  7        Roger       Wilcock
  8        Rudiger     Fensterbottom
  9        Sam         Williams
  
  ProductTypes:
  ProductID   ProductType
  ---------   -----------
  50          Kite
  55          Kite
  60          Yo-Yo
  70          Yo-Yo
  </code></pre>
  
  <p>I'd like to get all orders where Kites were ordered, but Yo-Yos were not on the same order.  My result set in this case would be:</p>
  
  <pre><code>ProductID   OrderDate   FirstName   LastName
  ---------   ---------   ---------   --------
  50          2011-08-02  Roger       Wilcock
  55          2011-08-03  Rudiger     Fensterbottom
  </code></pre>