banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB