Spot the error!

PostgreSQL:

SELECT name, "authorization" from card_batch_items 
where card_batch_id = 63 and status = 'Completed' and not "authorization" in 
    (select number from transactions where date ='2007-9-25');

Simple query, more or less. Fields like so:

card_batch_items.name varchar(25) not null,
card_batch_items.authorization varchar(25), # Will not be null if status = "Completed"
transactions.date date not null,
transactions.number integer

Simple? Not quite. If transactions.number is null for a matching row, column NOT IN (subquery) fails, because NULL = anything is NULL, and being not-true, returns nothing.