Bonjour,

Prenant l'exemple de cette requête suivante :
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
 
SELECT personne.IDPERSONNE, 
	(SELECT SUM(enfantDate.alloc) 
	FROM PERSONNE personneDate LEFT JOIN ENFANT enfantDate
		ON personneDate.IDPERSONNE=enfantDate.PERSONNE_ID 
		AND enfantDate.DATEDEBUT = '2000-05-01' 
	WHERE personneDate.IDPERSONNE = 4) as sumAllocationParDate,
 
	(SELECT SUM(enfantParPeriode.alloc) 
	FROM PERSONNE personneParPeriode LEFT JOIN ENFANT enfantParPeriode
		ON personneParPeriode.IDPERSONNE=enfantParPeriode.PERSONNE_ID 
		AND enfantParPeriode.DATEFIN > '2000-01-01' AND enfantParPeriode.DATEFIN < '2000-06-01'
	WHERE personneParPeriode.IDPERSONNE = 4) as sumAllocationParPeriode
 
FROM PERSONNE personne 
WHERE personne.IDPERSONNE = 4;
Je n'arrive pas à utiliser le IN pour avoir les allocations d'un ensemble de personne par date et par période, cette requête ne fonctionne pas puisque le retour des subquery est un ensemble de ligne :
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
 
SELECT personne.IDPERSONNE, 
	(SELECT SUM(enfantDate.alloc) 
	FROM PERSONNE personneDate LEFT JOIN ENFANT enfantDate
		ON personneDate.IDPERSONNE=enfantDate.PERSONNE_ID 
		AND enfantDate.DATEDEBUT = '2000-05-01' 
	WHERE personneDate.IDPERSONNE  IN (1,2,3,4)) as sumAllocationParDate,
 
	(SELECT SUM(enfantParPeriode.alloc) 
	FROM PERSONNE personneParPeriode LEFT JOIN ENFANT enfantParPeriode
		ON personneParPeriode.IDPERSONNE=enfantParPeriode.PERSONNE_ID 
		AND enfantParPeriode.DATEFIN > '2000-01-01' AND enfantParPeriode.DATEFIN < '2000-06-01'
	WHERE personneParPeriode.IDPERSONNE  IN (1,2,3,4)) as sumAllocationParPeriode
 
FROM PERSONNE personne 
WHERE personne.IDPERSONNE IN (1,2,3,4);
Que dois je modifier dans ma requête pour avoir le résultat souhaité ?

Merci beaucoup pour votre aide.