Bonjour,
Après maintes recherches je ne trouve pas la simplification miracle de mes requêtes, donc si quelqu'un a une idée...
Voilà je récupére dans une table chaque mois des données issues de différentes sources (3 tables de données clients).
Les données qui m'intéressent sont les suivantes : date d'analyse, numéro du contrat du client, et système source.
Le problème c'est que certains de mes clients sont présents dans plusieurs de mes systèmes sources. je cherche donc dans ma table à compter les clients qui sont dans le système 1, ceux qui sont dans le système 1 et 2, ceux qui sont dans les trois, ceux qui sont dans le système 2 et le 3, etc....
Le souci c'est que cela m'oblige à lancer 7 requêtes différentes (ce qui est pas hyper fun) du type :
select count (distinct numero_client) from matable t1
where date_analyse = '20110109'
and z_syst_source = 'systeme_1'
and z_pdl IN
(select /*+ parallel (t2,8) */ numero_client
from matable t2
where date_analyse = '20110109'
and z_syst_source = 'systeme_2')
and z_pdl IN
(select /*+ parallel (t3,8) */ numero_client
from matable t3
where date_analyse = '20110109'
and z_syst_source = 'systeme_3')
Et je relance le calcul en jouant sur les in/not in, etc...
Une bonne idée pour simplifier tout ça ?
(je ne peux bien sur pas juste me contenter de compter le nombre d’occurrences puisque dans le cas des doublons j'ai besoin de savoir si ils vient de système 1 et 2 ou 2et 3 ou 1 et 3)
Merci d'avance pour vos suggestions

Julia
