42 lines
1.3 KiB
SQL
42 lines
1.3 KiB
SQL
-- Extazyk,Smokefire,Smokemantra,Муркот,Растафаркрай,Хихихантер
|
|
with char1_achievements as (
|
|
select id,
|
|
date,
|
|
completed
|
|
from achievements
|
|
where name = $1
|
|
),
|
|
char2_achievements as (
|
|
select id,
|
|
date,
|
|
completed
|
|
from achievements
|
|
where name = $2
|
|
),
|
|
all_achievements as (
|
|
select id
|
|
from char1_achievements
|
|
union
|
|
select id
|
|
from char2_achievements
|
|
)
|
|
select all_achievements.id,
|
|
COALESCE(char1_achievements.completed, 0) as char1_completed,
|
|
char1_achievements.date as char1_date,
|
|
COALESCE(char2_achievements.completed, 0) as char2_completed,
|
|
char2_achievements.date as char2_date,
|
|
case
|
|
when char1_achievements.id is null then 'Only in Character2'
|
|
when char2_achievements.id is null then 'Only in Character1'
|
|
when char1_achievements.completed != char2_achievements.completed then 'Completion status differs'
|
|
when char1_achievements.date != char2_achievements.date then 'Dates differ'
|
|
else 'Same'
|
|
end as difference_type
|
|
from all_achievements
|
|
left join char1_achievements on all_achievements.id = char1_achievements.id
|
|
left join char2_achievements on all_achievements.id = char2_achievements.id
|
|
where char1_achievements.id is null
|
|
or char2_achievements.id is null
|
|
or char1_achievements.completed != char2_achievements.completed
|
|
or char1_achievements.date != char2_achievements.date
|
|
order by all_achievements.id; |