Bonjour à tous,

Voici la requête qui me pose problème...
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
53
54
 
    select
      t.ANNEE_MOIS_JOUR,
      t.CODE_MAGASIN,
      t.NUMERO_TICKET,
      t.NUMERO_LIGNE,
      t.CODE_ARTICLE,
      t.NUMERO_CARTE,
      p.NUMERO_PERSONNE,
      t.HEURE_VENTE,
      t.QTE_CAISSE,
      t.CA_TTC_REAL,
      t.CA_HT_REAL,
      t.MG_REAL,
      t.CA_TTC_NET,
      t.CA_HT_NET,
      t.MG_NET,
      t.CONCAT_NUM_TICKET,
      t.CDE_EXPRESS,
      t.CDE_MOBILE
    from
      SAS_CRM.PERSONNE_TICKET_SAS p,
      CRM.CARTE c,
      CRM.TICKET t
    where
      c.NUMERO_PERSONNE = p.NUMERo_PERSONNE and
      t.NUMERO_CARTE = c.NUMERO_CARTE
 
      UNION
 
      select
      t.ANNEE_MOIS_JOUR,
      t.CODE_MAGASIN,
      t.NUMERO_TICKET,
      t.NUMERO_LIGNE,
      t.CODE_ARTICLE,
      t.NUMERO_CARTE,
      t.NUMERO_PERSONNE,
      t.HEURE_VENTE,
      t.QTE_CAISSE,
      t.CA_TTC_REAL,
      t.CA_HT_REAL,
      t.MG_REAL,
      t.CA_TTC_NET,
      t.CA_HT_NET,
      t.MG_NET,
      t.CONCAT_NUM_TICKET,
      t.CDE_EXPRESS,
      t.CDE_MOBILE
    from
      SAS_CRM.PERSONNE_TICKET_SAS p,
      CRM.TICKET_PREMIER t
    where
      t.NUMERO_PERSONNE = p.NUMERO_PERSONNE
L'explain plan est assez dégueu puisqu'il fait des full sur toutes mes tables. Toutes les tables sont indexées sur les champs qui vont bien et les stats sont recalculées quotidiennement.
Les 2 éléments de l'union indépendemment l'un de l'autre tournent relativement vite. Ce qui plombe ma requête semble du coup être l'union.

Je cherche donc à réécrire cette requête par des jointures plutôt que par un union, mais je n'y parviens pas... C'est là que j'ai besoin de votre aide

Merci d'avance pour vos conseils