|
|
|
|
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
Merci Michel Ange pour ta réponse.
--
-- 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 |
Ce que j'aimerais savoir, c'est est ce que la récup des prix se fait depuis une table?
|
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 |