Некоторые компоненты самолета должны выполнять плановое техническое обслуживание, чтобы поддерживать его надежность. Но для того, чтобы быть видимым для персонала по планированию технического обслуживания, компонент PN должен находиться в базе данных компонентов воздушного судна. Исходя из этого, я создал код, который возвращает самолет, список его компонентов которого неполон.
Код должен работать следующим образом:
1) Первый столбец = Активные самолеты;
2) Второй столбец = PN компонента, для которого запланировано техническое обслуживание, из среды планирования технического обслуживания;
3) Третий столбец = Количество компонентов, установленных на самолете;
4) четвертый столбец = регистр, который возвращается, если компонент установлен (случай 1) или если он не установлен (случай 0)
SELECT B.AC,
A.PN,
COUNT (DISTINCT (A.AC)) AS "Nº OF CONTROLS",
B.AC_TYPE ||'-'|| B.AC_SERIES AS "TYPE/SERIES",
(CASE WHEN COUNT (DISTINCT (A.AC)) = 1 THEN 1 ELSE 0 END) AS "CHECK"
FROM ODB.PLANNING A
LEFT JOIN ODB.AC_MASTER B
ON A.AC = B.AC
WHERE A.PN IN ('RCF6709')
AND B.AC_TYPE ||'-'|| B.AC_SERIES = 'ATR72-600'
AND B.STATUS = 'ACTIVE'
GROUP BY B.AC,
B.AC_TYPE ||'-'|| B.AC_SERIES,
A.PN
Я извлек отчет об Excel из среды планирования технического обслуживания, и у нас есть 37 активных самолетов, и, учитывая, что на каждом самолете должен быть установлен один компонент pn RCF6709, мой код не работает, потому что он возвращает только 33 самолета.
При этом отображается только самолет, на котором установлен компонент pn RCF6709, но должен отображаться и самолет, на котором не установлен компонент pn RCF6709.
См. Изображение по этой ссылке, чтобы лучше понять.
https://drive.google.com/folderview?id=1-1VvWdcKXTW032IEGlX9xBO41FhmRYiV