43 lines
1.4 KiB
SQL
43 lines
1.4 KiB
SQL
UPDATE appointment_units
|
|
SET requirement_key = COALESCE(
|
|
(
|
|
SELECT r.requirement_key
|
|
FROM appointments a
|
|
JOIN students s ON s.id = a.student_id
|
|
JOIN license_class_templates t ON t.id = s.template_id
|
|
JOIN license_template_requirements r ON r.template_id = t.id
|
|
WHERE a.id = appointment_units.appointment_id
|
|
AND t.is_combination = 1
|
|
AND COALESCE(r.phase_label, '') <> ''
|
|
AND substr(r.requirement_key, instr(r.requirement_key, '::') + 2) = appointment_units.requirement_key
|
|
ORDER BY r.sort_order
|
|
LIMIT 1
|
|
),
|
|
requirement_key
|
|
)
|
|
WHERE requirement_key NOT LIKE '%::%'
|
|
AND appointment_id IN (
|
|
SELECT a.id
|
|
FROM appointments a
|
|
JOIN students s ON s.id = a.student_id
|
|
JOIN license_class_templates t ON t.id = s.template_id
|
|
WHERE t.is_combination = 1
|
|
);
|
|
|
|
DELETE FROM student_requirement_snapshots
|
|
WHERE requirement_key NOT LIKE '%::%'
|
|
AND student_id IN (
|
|
SELECT s.id
|
|
FROM students s
|
|
JOIN license_class_templates t ON t.id = s.template_id
|
|
WHERE t.is_combination = 1
|
|
)
|
|
AND EXISTS (
|
|
SELECT 1
|
|
FROM students s
|
|
JOIN license_template_requirements r ON r.template_id = s.template_id
|
|
WHERE s.id = student_requirement_snapshots.student_id
|
|
AND COALESCE(r.phase_label, '') <> ''
|
|
AND substr(r.requirement_key, instr(r.requirement_key, '::') + 2) = student_requirement_snapshots.requirement_key
|
|
);
|