Bonjour.
Si tu n'as pas un gros volume de données tu peux essayer avec un proudit croisé qui va te générer la matrice T1 X T2.
select [t1].*, [t2].*, Resultat as TaFonction([T1].[TonChamp], [T2.TonChamp]) where TaFonction([T1].[TonChamp], [T2.TonChamp])<=UneValeur
Évidement cela monte très vite donc à manier avec précaution car on tombe rapidement en dépassement de capacité de la BD (max 2 Go).
La solution que j'ai faite une fois consiste à faire la jointure par programme VBA et de traiter le resultat immédiatement.
L'algorithme est le suivant :
1 2 3 4 5 6 7
| pour chacun des enregistrements de T1
pour chacun des enregistrements de T2
si TaFonction([T1].[TonChamp], [T2].[TonChamp]) <=Une valeur
'Faire quelque chose avec ce cas
fin si
fin pour
fin pour. |
Cela peut être TRÉÉÉÉÉS long mais comme tu traites 2 enregistrements à la fois donc tu ne satures pas ta BD.
Si tu as une clef primaire pour chacune des tables pour le résultat tu peux faire un truc du genre :
Avec un seul match possible dans l'autre table :
Table T1
Tes champs T1
ClefT2
Table T2
Tes champs T2
ClefT1
Avec plusieurs matchs possibles :
Table Match
ClefT1
ClefT2
A+
Partager