#1 Wed 28 November 2007 11:21
- Douchez Marie-Claire
- Juste Inscrit !
- Date d'inscription: 5 Nov 2007
- Messages: 6
jointure_avec_table_sql
Bonjour à tous,
1 - Lorsque je fais la jointure de 2 tables dont l'une est issue d'une requête sql, ça ne fait pas correctement les choses.
2 - Par contre, lorsque j'enregistre cette table sql en table mapinfo, cela marche.
Je souhaiterais savoir si quelqu'un a déjà rencontré ce problème et si oui comment faire pour que cela puisse être possible sans passer par une sauvegarde en dur de la table sql.
Merci par avance
Marie-Claire
Hors ligne
#2 Wed 28 November 2007 11:48
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: jointure_avec_table_sql
... ça ne fait pas correctement les choses. ..
C'est à dire ?? Pouvez vous nous montrer la requête en cause SVP
Normalement on arrive à utiliser UNE requête résultat dans une nouvelle requête
Hors ligne
#3 Wed 28 November 2007 12:06
- Douchez Marie-Claire
- Juste Inscrit !
- Date d'inscription: 5 Nov 2007
- Messages: 6
Re: jointure_avec_table_sql
je fais la jointure des 2 tables, table1 et table2, sous mapinfo en faisant
table, mettre à jour colonne, ...etc afin d'ajouter une colonne de table2 dans table1
table1 est une table géographique.
table2 est une table issue de la requête suivante :
colonne : tableX. NOM , count ( * )
tables : tableY,tableX
critères : tableY.Obj within tableX.Obj
grouper par colonne : tableX.NOM
résultat dans table : table2
Ca ne marche pas : la jointure se fait mais les données récupérées de table2
sont dans table1 mélangées.
est-ce que c'est plus clair ?
Hors ligne
#4 Wed 28 November 2007 12:46
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: jointure_avec_table_sql
Vocabulaire: ce que vous faites est une mise à jour, pas une jointure (nom "réservé" à ce qui se fait par requête)
Si la mise à jour de table1 par table2 se fait sur le critère table1.NOM = table2.NOM ... ça devrait marcher !!
Sinon non (ou j'y perd mon latin )
Pour faire plus sûr, vous pouvez commencer par sélectionner dans table1 les entités qui ont le même nom que dans table2:
Select * from table,table2 where table1.NOM = table2.NOM into selnom
Puis mettre à jour selnom par table2 ...et enregistrer table1
Hors ligne
#5 Thu 29 November 2007 09:07
- Douchez Marie-Claire
- Juste Inscrit !
- Date d'inscription: 5 Nov 2007
- Messages: 6
Re: jointure_avec_table_sql
Je viens de compendre le problème :
C'était parce que la table2 était triée suivant une colonne. Si je génère table2 sans faire ce tri puis je mets à jour une colonne de table1 selon le critère table1.NOM = table2.NOM, ça marche.
Hors ligne
#6 Thu 29 November 2007 09:13
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: jointure_avec_table_sql
Que ça marche sans le tri dans table2, alors que ça échoue avec le tri, me surprend encore plus !!
Question: table1 n'a rien à voir avec les tableX et tableY impliqués dans la fabrication de table2 ??
Hors ligne
#7 Thu 29 November 2007 09:32
- Douchez Marie-Claire
- Juste Inscrit !
- Date d'inscription: 5 Nov 2007
- Messages: 6
Re: jointure_avec_table_sql
si tableX est en fait table1, pourquoi cette question ?
Hors ligne
#8 Thu 29 November 2007 12:11
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: jointure_avec_table_sql
Le seul tri possible dans table2, par requête est alors sur table1.NOM
L'autre tri possible est, après requête, sur Count
Dans les deux cas ça n'a strictement aucune influence sur la mise à jour de table1 par table2 ....
La vérité est ailleurs !!
Hors ligne