j'ai un probléme avec ma requette: elle marche trés bien coté sql qd je l'execute mais une fois je l'introduit dans ma procédure ils me disent une erreur close into est attendue


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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
	PROCEDURE etatstat1(in_date1 IN VARCHAR2, out_inum OUT tbl_integer, out_mois3 OUT tbl_integer, out_mois2 OUT tbl_integer, out_mois1 OUT tbl_integer, out_total OUT tbl_integer)
	AS
 
 
	var_count		INTEGER;
 
  var_count1		INTEGER;
  var_count2	  INTEGER;
  var_count3		INTEGER;
 
 
	var_date		DATE;
	var_date1		DATE;
	var_date2		DATE;
	var_date3		DATE;
 
	BEGIN
 
 
        var_date := TO_DATE(in_date1,'dd/mm/yyyy');
  	var_date1 := ADD_MONTHS(var_date, -1);
	var_date2 := ADD_MONTHS(var_date, -2);
	var_date3 := ADD_MONTHS(var_date, -3);
 
 
		out_inum(1) := 1;
 
---cette requete marche trés bien 
 
		SELECT	COUNT(DISTINCT H1.ienseignant) INTO var_count FROM r_histo_etats_enseignants H1
		WHERE	H1.ietat IN (2,3,4,7)
		AND	H1.date_effet_ens IN (SELECT MAX(date_effet_ens) FROM r_histo_etats_enseignants H2
						WHERE	H1.ienseignant = H2.ienseignant
						AND	H2.date_effet_ens <= var_date );
 
		out_total(1) := NVL(var_count,0);
 
 -- cette requete me pose un probleme erreur: une clause INTO...
 
SELECT sum(var_count3) as var_count3, sum(var_count2) as var_count2, sum(var_count1) as var_count1 from (
SELECT 
CASE when (min(date_effet_ens) between var_date1 and var_date) then count(distinct(ienseignant)) ELSE 0 END as var_count1,
CASE when (min(date_effet_ens) between var_date2 and var_date1) then count(distinct(ienseignant)) ELSE 0 END as var_count2,
CASE when (min(date_effet_ens) between var_date3 and var_date2) then count(distinct(ienseignant)) ELSE 0 END as var_count3
FROM r_histo_etats_enseignants 
WHERE	
ietat IN (2,3,4,7)
GROUP BY ienseignant);
 
out_mois1(1) := var_count1;
out_mois2(1) := var_count2;
out_mois3(1) := var_count;
je reçois

Erreur(55,1): PLS-00428: une clause INTO est attendue dans cette instruction SELECT