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 27 March 2008 15:31

Cartosig
Participant assidu
Date d'inscription: 16 Oct 2006
Messages: 222

[MB 8] Insert avec un Select Max() impossible ?

Salut,

Je veux faire un Insert dans une table de la valeur maximum d'un champ d'une autre table...
Rien de bien compliqué, mais :

Dans la FMB,

Code:

Insert into MaTable Select Max(MonChamp) from MaTable2

ne marche pas...

Dans le code en Run Command ça ne passe pas non plus bien sur...

PS : je ne peux pas utiliser la table Selection qui est dejà destinée à un autre emploi.

Dernière modification par Cartosig (Thu 27 March 2008 15:32)

Hors ligne

 

#2 Thu 27 March 2008 16:16

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MB 8] Insert avec un Select Max() impossible ?

Il faut savoir si vous voulez ajouter UNE ligne dans plusieurs colonnes (là il faut utiliser VALUES) ou un groupe de lignes (avec SELECT)
Je pense qu'il faut passer par une sélection intermédiaire, ce qui est toujours possible en nommant ses sélections (les fameux into tata, into titi, etc...smile)

Hors ligne

 

#3 Thu 27 March 2008 16:24

Cartosig
Participant assidu
Date d'inscription: 16 Oct 2006
Messages: 222

Re: [MB 8] Insert avec un Select Max() impossible ?

Oui évidemment c'est ce que j'ai voulu faire à la base, seulement le problème c'est que je souhaite hard-coder au minimum les noms de tables et de champs dans mon code, hors je n'arrive pas à utiliser des string contenant le nom de mes champs et tables dans ces instructions (je pense que c'est tout simplement impossible et c'est un des problèmes majeurs que je rencontre avec MB)...

Dans l'idéal je voulais faire

Code:

Select Max(theField) from theTable Into tmpMax Noselect

où theField et theTable sont des string passées à la fonction en paramètres.


Et pour répondre à la question je veux juste insérer 1 valeur dans une table qui a un seul champ !

Dernière modification par Cartosig (Thu 27 March 2008 16:26)

Hors ligne

 

#4 Thu 27 March 2008 20:10

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MB 8] Insert avec un Select Max() impossible ?

Maurice a écrit:

Si, si c'est possible ....il faut que je retrouve le truc (qui n'est pas trivial !!)


Pas si compliqué: la variable qui désigne la colonne doit être définie comme alias
Par exemple, avec une table "inconnue" en Layer 1 (en haut des couches) dont on sait que la colonne qui nous intéresse est la cinquième:

dim truc as alias
dim bidule as string
bidule=layerinfo(frontwindow(),1,1)
truc=bidule.COL5
Select Max(truc) from bidule Into tmpMax Noselect


marchera très bien

Hors ligne

 

Pied de page des forums

Powered by FluxBB