Я бы посоветовал написать такой запрос:
SELECT 'Inconnu' AS Numero_Devis,
'Inconnu' AS Numero_contrat,
'00000000-0000-0000-0000-000000000000' AS Id_Devis,
'00000000-0000-0000-0000-000000000000' AS ID_contrat
UNION ALL -- NOT UNION
SELECT Devis.Numero_contrat,
contrat.Numero_contrat,
Devis.ID_contrat,
contrat.ID_contrat
FROM [sch_DM_LMI].Fact_IU_contrat devis LEFT JOIN
[sch_DM_LMI].Fact_IU_contrat contrat
ON contrat.Numero_contrat = Devis.Numero_contrat AND
contrat.Code_Statut_Contrat = '1'
WHERE devis.Code_Statut_Contrat = 'D';
Единственное важное изменение здесь - это изменение на UNION ALL
.
Тогда для этого запроса вам нужны индексы Fact_IU_contrat(Code_Statut_Contrat, Numero_contrat)
и Fact_IU_contrat(Numero_contrat, Code_Statut_Contrat)
- да, оба. Вы также можете включить id_contrat
в оба индекса.