Bonjour
voila mon pb:
Je n'arrive pas a ecrire le requete de mes reves
J'ai une table UF avec comme identifiant "nufmuf"
une table colis avec comme identifiant "nucl" et un champ nufcl comme clé étrangère représentant un UF (Unité fonctionnelle)
NUCL NUFCL NUCOCL
------------ ------ ------
107 1127 534974
108 1127 534974
109 1127 534974
110 3502 534974
111 5001 536771
112 5001 536771
113 5201 536467
114 5201 536467
115 1127 534397
116 1127 534397
117 4212 535903
NUFMUF SERVUF SITEUF
------ -------------------- --------------------
1127 Bat Polyvalent 1er E CAREMEAU POL
3502 Bat Polyvalent 1er E CAREMEAU POL
5001 SERV:CONTENTIEUX ASS 21
0004 Bat Polyvalent 1er E CAREMEAU POL
0006 SERV:DIR ADM LS CHAR 23
0008 SERV:DIR ADM HEB PA 23
0009 SERV:DIR ADM PSY CHA 22
Voila ma requete :
je souhaite récupérer les sites et les service qui ont au moins un UF possédant un colis ainsi que le nombre de colis pour le quel le champ NUCOCL est null
select
uf.SITEUF,
uf.SERVUF,
count(colis_2.nucl) as NBPR
from
COLIS
INNER JOIN UF ON uf.nufmuf=colis.nufcl
RIGHT OUTER JOIN COLIS as colis_2 ON colis.nucl=colis_2.nucl
where
colis.etatcl = 'A'
and colis_2.nucocl is null
group by
uf.siteuf,
uf.servuf
Je n'obtiens aucun résultat (logique car "colis_2.nucocl is null
" m'en empeche)
Une idéé ???
des eclaircissements ?
merci
Voila la reponse :
select
uf1.SITEUF,
uf1.SERVUF,
(select count(*) from colis c2 inner join uf uf2 on uf2.nufmuf=c2.nufcl where c2.etatcl='A' and uf2.siteuf=uf1.siteuf and uf2.servuf=uf1.servuf and c2.nucocl is not null) as NBED,
from
COLIS c1
INNER JOIN UF uf1 ON uf1.nufmuf=c1.nufcl
group by
uf1.siteuf,
uf1.servuf
Message édité par mario51 le 20-05-2003 à 12:15:55