#1 Thu 18 June 2009 11:41
- laure4024
- Participant occasionnel
- Date d'inscription: 16 Jun 2009
- Messages: 20
invertion des enregistrements en map Basic
bonjour,
J'ai 2 tables qui ont des enregistrements communs et d'autres non. Afin de récupérer les enregistrements qui ne sont pas communs aux 2, j'ai tout d'abord fait une requête pour récupérer les enregistrements communs aux 2 tables et ensuite j'ai cliquer sur la touche inversion ce qui m'a sélectionner les enregistrements non communs aux 2 tables.
J'aurai aimé savoir s'il était possible de traduire cela en Map Basic.
merci d'avance
Hors ligne
#2 Thu 18 June 2009 13:44
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: invertion des enregistrements en map Basic
Bonjour
Comme la manip' peut se faire en une seule requête, genre:
Select * From TableA Where NOT Champ_A IN (Select Champ_B Fom TableB)
il suffit de passer cette requête (interprétée si elle mêle constantes et variables) en MapBasic
dim cmd as string
cmd="Select * From "+TableA+" Where NOT "+Champ_A+" IN (Select "+Champ_B+" Fom "+TableB+")"
Run command cmd
Hors ligne
#3 Thu 18 June 2009 15:14
- laure4024
- Participant occasionnel
- Date d'inscription: 16 Jun 2009
- Messages: 20
Re: invertion des enregistrements en map Basic
est ce que champs_A correspond à tous les chaps de la table A?
Hors ligne
#4 Thu 18 June 2009 16:09
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: invertion des enregistrements en map Basic
Non: Champ_A est un champ de la TableA qui a x enregistrements, et Champ_B est le champ équivalent de la TableB qui a y enregistrements (avec x > y)
Mais ça n'est peut être pas la solution à votre problème...
S'il s'agit d'objets, alors ça devient
Select * From TableA Where NOT obj Entirely Within any (Select obj Fom TableB)
Hors ligne
#5 Thu 18 June 2009 16:42
- laure4024
- Participant occasionnel
- Date d'inscription: 16 Jun 2009
- Messages: 20
Re: invertion des enregistrements en map Basic
j'ai effectué cette requête sur mes tables
Select * From TableA Where NOT obj Entirely Within any (Select obj Fom TableB)
cela me sélectionne bien les enregistrement qui ne sont pas communs aux 2 tables.
merci de l'aide
Hors ligne
#6 Thu 18 June 2009 17:05
- laure4024
- Participant occasionnel
- Date d'inscription: 16 Jun 2009
- Messages: 20
Re: invertion des enregistrements en map Basic
lorsque j'ai voulu ajouter les 2 tables entre elles en faisant table/ajouter à
j'ai eu un message d'erreur " impossible de convertir les données"
je ne comprend pas
Hors ligne
#7 Thu 18 June 2009 18:14
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: invertion des enregistrements en map Basic
Les deux tables n'ont pas la même structure de données: champs dans le même ordre et respectivement de même nature (entier, caractère, etc...) et peut être même de même nom (ça je ne crois pas: les noms de la table "qui reçoit" seront utilisée)
Il faut "égaliser" (si possible) les deux structures avant d'ajouter...
Hors ligne