I am attempting to refactor several old pieces of code... I have refactored the current piece below and have highlighted the NOT IN
statement causing performance issues. I am attempting to rewrite the NOT IN
section with a left outer join.
Can anyone help, or suggest a better way if possible?
SELECT
left(unique_id,16) AS casino_id ,
right(unique_id,24) AS game_id
FROM (
SELECT
distinct o.casino_id + g.game_id AS unique_id
FROM
game g INNER JOIN Bet b
ON g.game_id = b.game_id
INNER JOIN CasinoUser u
ON b.user_id = u.user_id
INNER JOIN onewalletcasino o
ON u.casino_id = o.casino_id
WHERE
game_start between dateadd(mi, -180, getdate())
and dateadd(mi, -5, getdate())
and b.[status] <> 'P'
) t
WHERE
unique_id NOT in
( SELECT casino_id + game_id AS casino_id
FROM
thirdpartysettlecalled
WHERE
[status] = 'Y')
ORDER BY casino_id