Hi.

I'm performing the following query to get all items sold in 2006 which
are in category prints or gifts, but not in extra:

select order_id from
(select o.order_id from orders o join order_lines ol using (order_id)
 where o.time > '2006-01-01T00:00' and o.time < '2007-01-01T00:00'
 and (ol.item_id = 10 or ol.item_id = 11 or ol.item_id = 12) group by
o.order_id) as prints
 inner join
(select ho.order_id from orders ho join order_lines hol using (order_id)
 where o.time > '2006-01-01T00:00' and o.time < '2007-01-01T00:00'
 and (ol.item_id = 20 or ol.item_id = 21 or ol.item_id = 22) group by
o.order_id) as gifts
 using (order_id)
except select order_id from
 (select ho.order_id from orders ho join order_lines hol using (order_id)
  where o.time > '2006-01-01T00:00' and o.time < '2007-01-01T00:00'
  and (ol.item_id = 30 or ol.item_id = 31 or ol.item_id = 32) group
by o.order_id) as extra;

When I do the 'select order_id' I get (after scrolling down):

order_id
---------
xyz
...
foo
bas
(1960 rows)

But when I do a 'select count(order_id) I get:

count
-------
 2063

Why does select and select(count) produce two different results? Am I
doing something wrong here?

regards
Claus

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

               http://www.postgresql.org/about/donate

Reply via email to