Bonjour,

J'ai écrit plusieurs programmes SAS que je souhaite lancer ensuite grâce à des %include.
- fichier 1 : création de mes tables via des proc sql odbc
- fichier 2 : les macros
A la suite des include, je lance certaines macros.

En lançant mes fichiers à la main, tout va bien, mes macros fonctionnent correctement.
Mais en utilisant les include, un problème se pose dans une macro : aucun warning, mais une procédure sql ne fonctionne pas, ne crée pas la table que je souhaite, et perturbe donc le reste de mon code.

J'ai testé de faire d'abord le fichier 1 à la main, puis de lancer le fichier 2 par un include, et ça fonctionne. Le problème se situe donc dans le fichier 1, quand je crée les tables grâce à des proc sql ODBC. Pourtant, j'ai tout regardé, les tables sont bien construites, pareil que si je les lance à la main...

Le create table, du fichier2, qui ne fonctionne pas est le suivant
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
 
proc sql undo_policy=none;
		create table Offres2 as
		select 
			b.reference				
			, b.iddemande
			, b.iddemandeur
			, b.statutDemandeur
			, b.datedepot 
			, b.datereunion
			, b.typeDemande
			, b.typeIndemnisation
			, b.typeOffre
			, case when b.typeOffre = 'DEFINITIVE' then n.nombreDef 
				when b.typeOffre = 'PARTIELLE' then n.nombrePar 
				else n.nombrePro end					
				as nombreAVerser
			, m.MtMoyen as MtMoyen
 
 
		from 
			Offres b 
			inner join AM.CoutsMoyensOffresMajoritaires m 
				on b.typeDemande = m.typeDemande 
					and b.typeOffre = m.typeOffre 
					and b.typeIndemnisation = m.typeIndemnisation 
					and b.statutDemandeur = m.statutDemandeur 
 
			inner join AM.nombreOffres n 
				on b.typeDemande = n.typeDemande 
					and b.typeIndemnisation = n.typeIndemnisation 
					and b.statutDemandeur = n.statutDemandeur 
 
		GROUP BY 
			b.reference
			, b.iddemande
			, b.iddemandeur
			, b.statutDemandeur
			, b.datedepot 
			, b.datereunion
			, b.typeDemande
			, b.typeIndemnisation
			, b.typeOffre 
		;
	quit;
Cela me crée une table vide. Les tables AM.CoutsMoyens et AM.nombreOffre sont construites dans le fichier 1

Par ailleurs, j'ai également tenté d'exécuter ces fichiers via un batch .bat, mais cela provoque la même chose. Pourtant, à la main, ca fonctionne !!!

Quelqu'un a une idée d'où vient le problème ?