WITH p AS (
SELECT platform_id,
CASE WHEN name IN ('PS3', 'PS4', 'PSP', 'PSV') THEN 'Sony'
WHEN name IN ('Wii', 'WiiU', 'DS', '3DS') THEN 'Nintendo'
WHEN name IN ('X360', 'XONE') THEN 'Microsoft' END as platform
FROM platforms
WHERE (CASE WHEN name IN ('PS3', 'PS4', 'PSP', 'PSV') THEN 'Sony'
WHEN name IN ('Wii', 'WiiU', 'DS', '3DS') THEN 'Nintendo'
WHEN name IN ('X360', 'XONE') THEN 'Microsoft' END) IS NOT NULL
)
SELECT DISTINCT g.name
FROM games g INNER JOIN p
ON g.platform_id = p.platform_id
WHERE g.year >= 2012
GROUP BY
g.name
HAVING
COUNT(DISTINCT p.platform) > 1