Bonjour,
j'ai 11 tables A, B, C, ... contenant notamment le champ ref et qty. Je voudrais les joindre totalement (full join sur ref) avec un seul champ ref contenant une valeur (pas de null). Je fais donc ça (je réduis volontairement à 3 tables)
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
SELECT
  (case 
  when (S1.ref is null and S2.ref is null) then S3.ref
  when (S1.ref is null and S3.ref is null) then S2.ref
  when (S2.ref is null and S3.ref is null) then S1.ref
  else S1.num_art 
  end) AS num_art,
  S1.qty as qtyS1,
  S2.qty as qtyS2,
  S3.qty as qtyS3
from A
full join B
on A.ref=B.ref
full join C
on B.ref=C.ref
J'utilise là, un case when. C'est jouable pour 3 même si dans l'exemple, ce n'est pas exhaustif. Mais pour 11, ça devient très très laborieux d'explorer tous les cas.
Bref, avez vous une idée de syntaxe me permettant de retourner dans le champ ref une valeur non nulle?
Merci