[SQL] pb mise à jour d'une colonne

Paulo69 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Paulo69 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je n'arriva pas ecrire l'ordre SQL pour faire la mise à jour suivante :
dans une table article, j'ai une colonne ref_article et une colonne prix_article

Dans la colonne ref_article j'ai des article avec le prix associé chargé depuis un csv.

Pour certains articles avec des codes nuances, par exemple des pots de peinture de couleurs différentes, j'ai une ref_article de la famille ex: BAD01 avec des ref_article différentes pour chaque nuance ex BAD01A = blanc, BAD01F = noir, BAD01T = rouge, ... avec un prix à NULL car non disponible au chargement alors qu'il est égal au prix disponible de la famille BAD01.

Comment ecrire l'ordre SQL de mise à jour :
UPDATE article
SET prix_article des BAD01x = prix_article du BAD01

merci pour votre aide
Paul
A voir également:

5 réponses

Michael_Ange Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   19
 
salut paulo. y'a une chose ke je e compren pas bien dans ton message.
Comment est ce que s'effectue le chargement de tes prix (avec un peu plus de détail STP).
pour la mise à jour de tes colonnes, t'as qu'a essayé :
UPDATE article
SET prix_article = prix_réell where ref_article = BAD01x
0
Paulo69 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci Michel Ange pour ta réponse.

je te donne la structure de ma table et l'objectif de l'update

   --
    -- Structure de la table `easy_pop`
    -- 

    CREATE TABLE `EASY_POP` (
      `EAP_ID`           INT(10) UNSIGNED NOT NULL DEFAULT '0' ,
      `V_PRODUCTS_MODEL` VARCHAR(12) NOT NULL DEFAULT '' ,
      `V_PRODUCTS_PRICE` DECIMAL(15,4) DEFAULT '0.0000' ,
      PRIMARY KEY( `EAP_ID` ),
      UNIQUE KEY `V_PRODUCTS_MODEL`( `V_PRODUCTS_MODEL` ))
    ENGINE = MYISAM
    DEFAULT CHARSET = LATIN1;
    -- 
    -- Contenu de la table `easy_pop`
    -- 

    INSERT INTO `EASY_POP` VALUES     (10,'AAA05047',12.0000);

    INSERT INTO `EASY_POP` VALUES     (11,'AAA05047A',NULL);

    INSERT INTO `EASY_POP` VALUES     (12,'AAA05047B',NULL);

    INSERT INTO `EASY_POP` VALUES     (14,'AAA10012',16.2000);

    INSERT INTO `EASY_POP` VALUES     (15,'AAA10012A',NULL); 


Ce qui me donne :

    Code Art      Prix
    10 - AAA05047  - 12.0000
    11 - AAA05047A - NULL
    12 - AAA05047B - NULL
    14 - AAA10012  - 16.2000
    15 - AAA10012A - NULL


et je souhaiterai faire l'update pour avoir :

   10 - AAA05047   - 12.0000
    11 - AAA05047A  - 12.000
    12 - AAA05047B  - 12.000
    14 - AAA10012   - 16.2000
    15 - AAA10012A  - 16.200


Merci pour votre aide
Paul

MySQL 4.1.9
0
Michael_Ange Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   19
 
ce que j'aimerais savoir, c'est est ce que la récup des prix se fait depuis une table?
Si oui, envoie la structure de cette table.
dans le cas contraire, je suppose que les différents prix viennent de toi.
dans ce cas tu seras obligé de modifier la colonne un peu comme je l'ai expliqué précédemment!!!
0
Paulo69 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour Mickael_Ange,

Les données viennent de fichier csv.
Un fichier des articles avec tous les codes articles et un fichier tarif avec uniquement les tarifs des articles de base d'ou le NULL pour le prix des articles avec nuances !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Paulo69 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   1
 
Ordres Update résolvant le pb :

UPDATE `easy_pop` as e1 join `easy_pop` as e2
  SET  E1.V_PRODUCTS_PRICE = E2.V_PRODUCTS_PRICE
WHERE SUBSTR(e1.v_products_model, 1, 8)=SUBSTR(e2.v_products_model, 1, 8)
AND e2.V_PRODUCTS_PRICE IS NOT NULL]


ou

UPDATE `easy_pop` as e1 join `easy_pop` as e2
SET  E1.V_PRODUCTS_PRICE = E2.V_PRODUCTS_PRICE
WHERE SUBSTR(e1.v_products_model, 1, 8)=SUBSTR(e2.v_products_model, 1, 8)
AND e2.V_PRODUCTS_PRICE IS NOT NULL
AND e2.eap_id != e1.eap_id


ou encore

UPDATE `easy_pop` as e1 join `easy_pop` as e2
ON SUBSTR(e1.v_products_model, 1, 8)=SUBSTR(e2.v_products_model, 1, 8)
AND e2.V_PRODUCTS_PRICE IS NOT NULL
AND e2.eap_id != e1.eap_id
SET  E1.V_PRODUCTS_PRICE = E2.V_PRODUCTS_PRICE


Have Fun
0