Pervasive SQL Mettre a jour une Table

Pervasive SQL Mettre a jour une Table - SQL/NoSQL - Programmation

Marsh Posté le 20-03-2014 à 14:08:45    

Bonjour à tous,  
 
Etant grand débutant en SQL, je dois mettre a jour une table et souhaitais une assistance :
 
J'ai crée cette requête qui fonctionne très bien :
SELECT  
 "ARTFOURN"."Reference",  
 SUBSTRING ("ARTFOURN"."Reference",2) AS "RefFourn1",
 "ARTICLE"."Libelle",
 "ARTFOURN"."Fournisseur",
 "FOURNISSEUR"."RaisonSociale",  
 "ARTFOURN"."RefFourn"
 
FROM  
 "ARTFOURN",  
 "FOURNISSEUR",
 "ARTICLE"
 
WHERE  
 "ARTFOURN"."Fournisseur" =  "FOURNISSEUR"."Code"
 AND
 "ARTFOURN"."Reference" = "ARTICLE"."Reference"
 AND
 "ARTFOURN"."RefFourn" = ''
 AND  
 "FOURNISSEUR"."RaisonSociale" LIKE 'VALMET%'
 
 
ORDER BY  
 "FOURNISSEUR"."RaisonSociale"  
 ASC
 
Donc je dois mettre a jour la table "ARTFOURN" colonne "RefFourn" avec la colonne RefFourn1  crée depuis la requête précédente.
 
J'ai donc crée la requete suivante qui ne fonctionne pas avec le message suivant :
 
UPDATE  
 "ARTFOURN"
 
SET  
 "ARTFOURN"."RefFourn" = SUBSTRING ("ARTFOURN"."Reference",2)
 
WHERE  
 "ARTFOURN"."Reference" =  
 
(SELECT "ARTFOURN"."Reference"
 FROM  
  "ARTFOURN",  
  "FOURNISSEUR",
  "ARTICLE"
 
WHERE  
 "ARTFOURN"."Fournisseur" =  "FOURNISSEUR"."Code"
 AND
 "ARTFOURN"."Reference" = "ARTICLE"."Reference"
 AND
 "ARTFOURN"."RefFourn" = ''
 AND  
 "FOURNISSEUR"."RaisonSociale" LIKE 'VALMET%')
Some error(s) encountered while executing SQL statement(script).
 
ODBC Error: SQLSTATE = S1000, Native error code = 0  
'Invalid row-count in subquery.
 
Quelqu'un peut-il m'aider ?
 
Merci d'avance
 
Cordialement  
 
Timkeeper
 
 

Reply

Marsh Posté le 20-03-2014 à 14:08:45   

Reply

Marsh Posté le 22-03-2014 à 12:01:10    

:hello: !
 
Je ne sais pas si tu as trouvé la solution depuis le temps, mais le problème se situe au niveau de ta condition :

Code :
  1. WHERE 
  2. "ARTFOURN"."Reference" =


 
En effet, ta sous-requête retourne plusieurs enregistrements, comme te l'indique le message d'erreur :

Code :
  1. ODBC Error: SQLSTATE = S1000, Native error code = 0 
  2. 'Invalid row-count in subquery.


 
Pour corriger ta requête, il te suffit de remplacer ton égalité par un test sur un ensemble :

Code :
  1. WHERE 
  2. "ARTFOURN"."Reference" in (
  3.   SELECT "ARTFOURN"."Reference"
  4. FROM 
  5. [...]
  6. )


 
:jap:


---------------
And in the end, the love you take is equal to the love you make
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed