
-- Vérification de la cohérence entre les tables types/secteurs/categories/details et labels

-- 1. Codes ayant moins de 3 traductions (fr, en, nl)
SELECT code
FROM labels
GROUP BY code
HAVING COUNT(DISTINCT langue) < 3;

-- 2. Codes dans les tables métiers sans traduction dans labels

-- Types manquants dans labels
SELECT CONCAT(t.id) AS code
FROM types t
WHERE CONCAT(t.id) NOT IN (SELECT code FROM labels);

-- Secteurs manquants dans labels
SELECT CONCAT(s.type_id, '.', s.id) AS code
FROM secteurs s
WHERE CONCAT(s.type_id, '.', s.id) NOT IN (SELECT code FROM labels);

-- Catégories manquantes dans labels
SELECT CONCAT(c.type_id, '.', c.secteur_id, '.', c.id) AS code
FROM categories c
WHERE CONCAT(c.type_id, '.', c.secteur_id, '.', c.id) NOT IN (SELECT code FROM labels);

-- Détails manquants dans labels
SELECT CONCAT(d.type_id, '.', d.secteur_id, '.', d.categorie_id, '.', d.id) AS code
FROM details d
WHERE CONCAT(d.type_id, '.', d.secteur_id, '.', d.categorie_id, '.', d.id) NOT IN (SELECT code FROM labels);

-- 3. Codes présents dans labels mais absents de toutes les tables hiérarchiques
SELECT code
FROM labels
WHERE code NOT IN (
  SELECT CONCAT(id) FROM types
  UNION
  SELECT CONCAT(type_id, '.', id) FROM secteurs
  UNION
  SELECT CONCAT(type_id, '.', secteur_id, '.', id) FROM categories
  UNION
  SELECT CONCAT(type_id, '.', secteur_id, '.', categorie_id, '.', id) FROM details
);