Le titre n'est pas très explicite.
J'ai une table IMMEUBLE à laquelle est liée une table FINANCEMENT.
Un immeuble peut avoir plusieurs financement, différenciés par une date de début et un type de financement différent. Il ne peut y avoir deux financement avec un même type pour la même date de début.
Ce que je cherche à faire, c'est dans un premier temps de rechercher les immeubles ayant un financement d'un certain type pour une date de début données, puis de comparer le résultat obtenu avec tous les immeubles, afin de détecter quels immeubles n'ont pas ce type de financement pour une période déterminée.
J'ai donc écrit la requête suivante :
Ici, le résultat que j'aimerais obtenir, ce sont tous immeubles qui n'ont pas un financement de type 23 pour la période commençant le 01.07.2013.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT imm.ID , imm.NUMERO_DOSSIER , imm.LETTRE_DOSSIER FROM IMMEUBLE AS imm WHERE imm.ID NOT IN (SELECT imm.ID , fin.IMMEUBLE_ID_FK , fin.TYPE_FINANCEMENT_ID_FK FROM IMMEUBLE AS imm INNER JOIN FINANCEMENT AS fin ON fin.IMMEUBLE_ID_FK = imm.ID WHERE DATE_FORMAT(fin.DATE_DEBUT, '%d.%m.%Y') = '01.07.2013' AND fin.TYPE_FINANCEMENT_ID_FK IN (23)) GROUP BY imm.ID , imm.NUMERO_DOSSIER , imm.LETTRE_DOSSIER ORDER BY imm.NUMERO_DOSSIER , imm.LETTRE_DOSSIER;
Exécutées individuellement, elles fonctionnent.
J'ai cependant l'erreur suivante :
Je ne vois pas mon erreur (et il y en a peut-être plusieurs).Error Code: 1241. Operand should contain 1 column(s)
Merci d'avance pour votre aide.
Partager