begin process at 2012 05 27 02:35:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

SQL SERVER - Update compliqué ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SQL SERVER - Update compliqué ...

mardi 2 février 2010 à 17:46:16 | SQL SERVER - Update compliqué ...

o06

Bjr le Forum,

je vous soumets brièvement mon souci:
une table f_article avec un champ ar_codefiscal que je voudrais mettre à jour à partir des valeurs des champs d'une autre table majcodes.
dans la table f_article pour chaque champ reference il y a un champ ar_codefiscal, dans la table majcodes il y a pour chaque champ reference un champ codefiscal. je voulais pour chaque champ f_article.ar_codefiscal vide le mettre à jour avec la valeur du champ majcodes.codefiscal avec comme 'clé' f_article.ar_ref = majcodes.reference.
ouf...

j'ai donc essayé :
Code :
update dbo.f_article 
set ar_codefiscal =
(
select majcodes.codefiscal from majcodes inner join f_article on majcodes.reference = f_article.ar_ref
)
where ar_codefiscal =''


l'analyseur de requêtes me retourne me msg d'erreur suivant :
Serveur : Msg 512, Niveau 16, État 1, Ligne 1
La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.
L'instruction a été arrêtée.

je vois bien le souci mais je n'arrive pas à trouver de solution à mon petit niveau (me frotte a SQL server très ponctuellement)

auriez vous une piste SVP ?
Merci
a+



lundi 15 février 2010 à 16:17:53 | Re : SQL SERVER - Update compliqué ...

hymnuade

Bonjour,

update dbo.f_article
set ar_codefiscal = codefiscal
from majcodes
inner join f_article on majcodes.reference = f_article.ar_ref
where ar_codefiscal ='' OR ar_codefiscal IS NULL

ATTENTION au champs vide ou NULL

Ref : http://msdn.microsoft.com/en-us/library/ms177523.aspx
mardi 23 février 2010 à 23:05:46 | Re : SQL SERVER - Update compliqué ...

nhervagault

Administrateur CodeS-SourceS
Salut,

Il est possible d'utiliser un curseur pour mettre à jour
les valeurs au fur et à mesure.

Mets les curseurs ne sont pas recommandés (mémoire trop importante)

Un while dans une proecure peut resoudre surement le probleme.

http://sqlpro.developpez.com/cours/sqlserver/MSSQLServer_avoidCursor/

http://www.sql-server-performance.com/articles/per/operations_no_cursors_p1.aspx
jeudi 25 février 2010 à 10:12:23 | Re : SQL SERVER - Update compliqué ...

o06

Hello,

Merci pour vos réponses.
Je m'en suis sorti avec une requête trouvée au fil de mes recherches sur le net.
C'est à mon avis pas très propre (encore une fois je suis un novice en SQL Manager) mais ça marche.
Je dis pas très propre car elle "grise" les volets diagramme et grille. Seul le volet SQL reste opérationnel.

Ça se rapproche un peu de ce que propose hymnuade. Par contre je ne connais pas les curseurs. Et je vais jeter un ½il aux liens pour voir ce que propose nhervagault (punaise vous avec de ces pseudos, c'est pas humain)

Encore merci pour votre aide.
A+

La requête :
Code :
UPDATE    f_article
SET              f_article.ar_codefiscal = majcodes.codefiscal
FROM         f_article, majcodes
WHERE     f_article.ar_codefiscal = '' AND f_article.ar_ref = majcodes.reference


Cette discussion est classée dans : champ, article, ar, codefiscal, majcodes


Répondre à ce message

Sujets en rapport avec ce message

Petit pb de requette [ par cboulas ] Salut, Voilà, j'ai une requette que j'éxécute dans l'explorateur SQL et qui fonctionne très bien. Or dès que je met cette même requette dans un trava Requête DELETE [ par Moundir76 ] Bonjour, Je souhaite effectuer une requête SQL DELETE, jusque la rien de compliqué mais c'est la premiere fois que je dois faire une requete avec joi MCD ???? [ par yazidak1 ] Bonjour j'ai comme mini-projet "La Gestion Des Stocks" d'une ETP Après avoir tracé les tables client,fournisseur, article .... il me reste le MCD( M dissocier un champ image d'une table [ par zarastar ] bonjour je dispose d'une table postgresql qui contient des champs de type caractere,date et image mon probleme est comment dissocier le champ image de sélectionner les enregistrements pour la valeur max d'un champ d'une table liée [ par rlapt ] Bonjour, Je souhaite faire une requête SQL à partir d'excel, dans une base Access. J'ai deux tables liées par des champs d'index : Table 1 -> Nro compterr des données [ par audreysorelle ] bjr, J'ai une table qui a un champ nommé N° de commande, dans ce champ il y a des numéros qui se répètent j'aimerais compter l'occurrence des données formulaire et traitement [ par audreysorelle ] Par défaut traitement des formulaires Bonjour, J'ai un très gros PB? là c'est chaud j'ai vraiment besoin d'aide. je vous envoie en fichie Comparaison de date locale et timestamp UTC sous Oracle [ par xtof35fr ] Bonjour, J'ai récupéré un schéma de base de donnée pas trop nickel. Dedans, je recupére 2 champs avec des infos de date/time: [list][*] un champ Nu Point dans le nom d'une colonne [ par junglist kirss ] Salut, j'ai un soucis avec une requête sous Access, je cherche à nommer une colonne via le "AS" de ma requête, ce nom de colonne doit contenir un "." Requéte SQL Urgent [ par farfour91 ] Svp je suis entrain de réaliser mon PFE j'ai un problème je voudrais remplier un Champ vide d'une table2 par un champ déjà remplit dans Table1 la r


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,245 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales