[SQL] pb mise à jour d'une colonne

Fermé
Paulo69 Messages postés 7 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 4 janvier 2010 - 28 oct. 2006 à 17:48
Paulo69 Messages postés 7 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 4 janvier 2010 - 31 oct. 2006 à 19:10
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 jeudi 27 novembre 2003 Statut Membre Dernière intervention 29 mai 2015 19
29 oct. 2006 à 08:47
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 samedi 28 octobre 2006 Statut Membre Dernière intervention 4 janvier 2010 1
29 oct. 2006 à 19:24
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 jeudi 27 novembre 2003 Statut Membre Dernière intervention 29 mai 2015 19
29 oct. 2006 à 23:26
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 samedi 28 octobre 2006 Statut Membre Dernière intervention 4 janvier 2010 1
30 oct. 2006 à 10:22
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 samedi 28 octobre 2006 Statut Membre Dernière intervention 4 janvier 2010 1
31 oct. 2006 à 19:10
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