I don't see anything wrong with that.
Try to execute the queries separately, the problem could be in the conditions for game_date or game_id.
What's the result of following queries?
Code:
select DISTINCT login_id from himalaya3_epromo_winners
Code:
select login_id,tim
from play_game
where trunc(game_date) < trunc(sysdate-3)
and GAME_ID=24
You can also test the sets of login_ids:
Code:
select count(*) from
(
select distinct login_id from play_game
minus
select distinct login_id from himalaya3_epromo_winners
)
If all looks good and the whole query does not yield records then the conditions simply are not satisfied.