Files
drivetimeplaner/www/fahrschultermin.de/database/migrations/013_combo_generic_key_cleanup.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
);