Bonjour,
J'ai 2 tables différentes avec n champs.
Chacune des tables a 1 champ avec une valeur unique, un identifiant sans doublon (comme pour une clé primaire d'une table mais dans ce cas ce n'est pas la clé primaire des tables en question).
Basé sur la comparaison de ces 2 champs je dois distinguer 3 choses:
1- toutes les lignes uniques à la table 1
2- toutes les lignes uniques à la table 2.
3- toutes les correspondante (tab1.ch1=tab2.ch1) et qui ont une valeur différente sur 3 autres paires de champs.
pour écrire les lignes sélectionnées dans une 3e table.
Je vais traiter cette problématique en 3 requêtes distinctes.
Bon pour 1- et 2-,
on s'entend que c'est la même problématique! J'ai bien essayé quelque chose comme:
INSERT tab3 (ch_Id, ch_a, ch_b, ch_c)
SELECT tab1.ch_Id1, tab1.ch_A1, tab1.ch_B1, tab1.ch_C1
FROM tab1, tab2
WHERE tab1.ch_Id1 <> tab2.ch_Id2
.....mais c'est pas ça!
Quelqu'un peut-il éclairer l'obscurité dans laquelle je suis? (i.e. exemple explicite!)
Pour 3-,
Je je propose:
INSERT tab3 (ch_Id, ch_a, ch_b, ch_c)
SELECT tab1.ch_Id1, tab1.ch_A1, tab1.ch_B1, tab1.ch_C1
FROM tab1, tab2
WHERE tab1.ch_Id1 = tab2.ch_Id2
and
( tab1.ch_A1 <> tab2.ch_A2
or tab1.ch_B1 <> tab2.ch_B2
or tab1.ch_C1 <> tab2.ch_C2 )
Est-ce la bonne façon?
P.S. ver : SQL2K
Partager