[Résolu]UPDATE SQL sur deux tables:"column not found"
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 13 mars 2013 08:16
[Résolu]UPDATE SQL sur deux tables:"column not found"
Bonjour à tous,
Voilà quelques heures que je patauge sur quelque chose qui me paraissait si simple pour le néophyte que je suis .... et bien non...
Deux tables: une "tbl-articles", une "tbl-tarifs"
Dans "tbl-articles" deux champs "reffrs" et "PrixHT"
Dans "tbl-tarifs" deux champs "Reffrs" et "Prixnet"
Je dois juste mettre à jour les "Prix HT" de "tbl-article" par les "Prixnet" de "tbl-tarifs" car ils sont plus récents.
J'ai tenté:
update "tbl-articles"
set "tbl-articles"."PrixHT"="tbl-tarifs"."Prixnet"
where "tbl-articles"."reffrs"= "tbl-tarifs"."Reffrs"
et bien non je reçois le message "Column "tbl-tarifs"."Ref frs" not found" (alors que j'ai fait d'autres essais un peu de toute sorte où il me la trouve, la modifie et tout ce que je veux sans problème). J'ai pensé aux formats, les deux sont en "Décimal"... Je sèche complet...
Merci d'avance pour d'éventuelles idées.
Bonne continuation à tous...
Voilà quelques heures que je patauge sur quelque chose qui me paraissait si simple pour le néophyte que je suis .... et bien non...
Deux tables: une "tbl-articles", une "tbl-tarifs"
Dans "tbl-articles" deux champs "reffrs" et "PrixHT"
Dans "tbl-tarifs" deux champs "Reffrs" et "Prixnet"
Je dois juste mettre à jour les "Prix HT" de "tbl-article" par les "Prixnet" de "tbl-tarifs" car ils sont plus récents.
J'ai tenté:
update "tbl-articles"
set "tbl-articles"."PrixHT"="tbl-tarifs"."Prixnet"
where "tbl-articles"."reffrs"= "tbl-tarifs"."Reffrs"
et bien non je reçois le message "Column "tbl-tarifs"."Ref frs" not found" (alors que j'ai fait d'autres essais un peu de toute sorte où il me la trouve, la modifie et tout ce que je veux sans problème). J'ai pensé aux formats, les deux sont en "Décimal"... Je sèche complet...
Merci d'avance pour d'éventuelles idées.
Bonne continuation à tous...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Sampic le 29 juin 2014 10:21, modifié 9 fois.
LibO 4.1.5.3, sous W7-32
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Erreur: "column not found" sur requête SQL sous LibO Bas
Bonjour,
Je reproduis ce que tu décris.
Dans l'idéal, il faudrait éviter les espaces dans les noms des champs des Tables même si je ne suis pas sûr que ce soit l'origine du problème.
Je reproduis ce que tu décris.
Dans l'idéal, il faudrait éviter les espaces dans les noms des champs des Tables même si je ne suis pas sûr que ce soit l'origine du problème.
Dernière modification par jeanmimi le 27 juin 2014 06:38, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 13 mars 2013 08:16
Re: Erreur: "column not found" sur requête SQL sous LibO Bas
Merci de l'intervention.
Oui tout à fait évitons les espaces, je mérite un remontage de bretelles... ça y est c'est corrigé.
Pff je m'aperçois que j'ai aussi un accent dans un nom de champ... bon il ne concerne pas le sujet lui je le modifierai plus tard.
Oui tout à fait évitons les espaces, je mérite un remontage de bretelles... ça y est c'est corrigé.
Pff je m'aperçois que j'ai aussi un accent dans un nom de champ... bon il ne concerne pas le sujet lui je le modifierai plus tard.
LibO 4.1.5.3, sous W7-32
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: Erreur SQL : "column not found"
Bonjour
Le guide HSQLDB donne comme exemple pour la commande UPDATE.
La commande telle quel à l'énorme inconvénient de remettre à vide tous les autres prixHT de la table Articles !!!!
Problème de la version HSQLDB embarquée je présume,
Une solution éventuelle trouvée sur le Forum Anglais
How to update between two tables?
Pour ton UPDATE :A+
A priori il est normal que cette commande ne fonctionne pas.Sampic a écrit :J'ai tenté:
update "tbl-articles"
set "tbl-articles"."PrixHT"="tbl-tarifs"."Prixnet"
where "tbl-articles"."reffrs"= "tbl-tarifs"."Reffrs"
Curieux de voir un essai qui fonctionne.Sampic a écrit :(alors que j'ai fait d'autres essais un peu de toute sorte où il me la trouve, la modifie et tout ce que je veux sans problème).
Le guide HSQLDB donne comme exemple pour la commande UPDATE.
Dans ta base, la commande tapée avec la syntaxe correcte modifie la valeur du prixHT de la table Articles par la valeur de Prixnet de la table Tarifs pour les champs ayant la même valeur Reffrs.Guide HSQLDB a écrit :Exemple de commande à saisir en SQL direct :
UPDATE "Clients"
SET "Nom" = (SELECT "Nom" FROM "AjoutClients" WHERE "AjoutClients"."ID" = "Clients"."ID")
La commande telle quel à l'énorme inconvénient de remettre à vide tous les autres prixHT de la table Articles !!!!
Problème de la version HSQLDB embarquée je présume,
A priori "l'implicit SELECT" ne se fait pas.HSQLDB a écrit :Update rows of a table. An UPDATE statement selects rows from the <target table> using an implicit SELECT statement formed in the following manner:
SELECT * FROM <target table> [ [ AS ] <correlation name> ] [ WHERE <search condition> ]
Then it applies the SET <set clause list> expression to each selected row.
Une solution éventuelle trouvée sur le Forum Anglais
How to update between two tables?
Pour ton UPDATE :
Code : Tout sélectionner
UPDATE "tbl-articles" SET "PrixHT" = (SELECT "Prixnet" FROM "tbl-tarifs" WHERE "Reffrs" = "tbl-articles"."reffrs") WHERE EXISTS
(SELECT "Prixnet" FROM "tbl-tarifs" WHERE "tbl-articles"."reffrs" = "Reffrs")
Dernière modification par Piaf le 28 juin 2014 11:07, modifié 1 fois.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 13 mars 2013 08:16
Re: Erreur SQL : "column not found"
Sampic a écrit :update "tbl-articles"
set "tbl-articles"."PrixHT"="tbl-tarifs"."Prixnet"
where "tbl-articles"."reffrs"= "tbl-tarifs"."Reffrs"
Salut Piaf, mille mercis pour ton intervention.Piaf a écrit :Curieux de voir un essai qui fonctionne.
Voilà pour info ce qui a marché et m'a donc laissé croire que j'étais sur une piste viable:
update "tbl-articles"
set "tbl-articles"."PrixHT"= 99999999
where "tbl-articles"."reffrs" = 212000030
Me voilà bien mieux armé maintenant, je ne savais même pas qu'il me fallait me référer à un guide HSQLDB.... (tu vois mon niveau).
Effectivement tu as bien anticipé, si ma mise à jour met à zéro les autres articles ça va pas le faire....
Je me lance donc sur la piste que tu joins à la fin, t'en remercie encore et promets des nouvelles assez rapidement.
LibO 4.1.5.3, sous W7-32
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 13 mars 2013 08:16
Re: Erreur SQL : "column not found"
Hé mais c'est que ça marche!!!! Il y avait juste un "S" manquant à la commande EXISTS (c'est bon l'erreur était dans mes cordes).
Code : Tout sélectionner
UPDATE "tbl-articles" SET "PrixHT" = (SELECT "Prixnet" FROM "tbl-tarifs" WHERE "Reffrs" = "tbl-articles"."reffrs") WHERE EXISTS
(SELECT "Prixnet" FROM "tbl-tarifs" WHERE "tbl-articles"."reffrs" = "Reffrs")
Encore merci Piaf c'est vraiment cool de ta part de t'être penché ainsi sur mon cas.
@++
LibO 4.1.5.3, sous W7-32
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: Erreur SQL : "column not found"
Bonjour
J'avais effectivement oublié de le S de EXISTS
Tu édites ton premier message et tu changes le titre, quelque chose du genre SQL UPDATE sur deux tables.
A+
J'avais effectivement oublié de le S de EXISTS
Ajout : Corrigé |
+1Sampic a écrit :Pour être mieux référencé il faudrait changer un peu le titre du fil clos, quelqu'un sait si c'est possible?
Tu édites ton premier message et tu changes le titre, quelque chose du genre SQL UPDATE sur deux tables.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 13 mars 2013 08:16
Re: Erreur SQL : "column not found"
J'avais essayé mais en éditant mon premier post je n'ai que son contenu dans la fenêtre d'édition... le titre du fil apparaît au dessus en lien non éditable.Piaf a écrit :Tu édites ton premier message et tu changes le titre, quelque chose du genre SQL UPDATE sur deux tables.
A+
La prochaine fois je réfléchirai 2mn à un titre optimisé d'entrée de jeu...
LibO 4.1.5.3, sous W7-32
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: Erreur SQL : "column not found"
Bonjour
Il faut modifier le titre dans sujet
A+
Il faut modifier le titre dans sujet
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 13 mars 2013 08:16
Re: UPDATE SQL deux tables donne "column not found"
Youps on l'a fait tous les deux en même temps...
Sujet clos, merci encore.
Sujet clos, merci encore.
LibO 4.1.5.3, sous W7-32
-
- RespOOnsable forum
- Messages : 9254
- Inscription : 28 août 2010 08:45
Re: UPDATE SQL deux tables donne "column not found"
Bonjour,
Reste à baliser [Résolu][b][color=#404080]Sampic[/color][/b] a écrit :Sujet clos
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac