Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2011, 10h01   #1
Invité régulier
 
Marcel Cyrille LAMENU
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Marcel Cyrille LAMENU

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 5
Points : 5
Par défaut problème de la syntaxe update

Bonjour,

Je veux faire une mise à jour d'un champ d'une table à partir des valeurs qui se trouvent dans d'autres tables en faisant des jointures. Voilà le code que j'écris :

Code :
1
2
3
4
5
6
7
8
9
10
11
UPDATE Faits_Ventes
SET shop_sk=T .shop_sk
FROM (
    SELECT s.shop_sk, fait_ventes.document_id
    FROM dim_shop s, f_relation r, m_order o, fait_ventes
    WHERE r.document_model_id2 = fait_ventes.document_model
    AND r.relation_id2 = fait_ventes.document_id
    AND s.document_id = o.shopid
) AS T,
Faits_ventes
WHERE T.document_id = fait_ventes.document_id
Je veux modifier la table fait_ventes avec le champ shop_sk qui se trouve dans la table dim_shop. Puis je fais une correspondance entre id2 de f_relation (relation entre order et orderline) et id de fait_ventes.
J'ai une erreur disant que ma requête retourne plusieurs lignes.

Pouvez-vous m'aider SVP? C'est depuis vendredi que je bloque sur ce problème.

Merci de votre compréhension.
lamen0031 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h38   #2
Membre habitué
 
Avatar de rinuom99
 
Étudiant
Inscription : août 2007
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 238
Points : 125
Points : 125
Envoyer un message via MSN à rinuom99
Code :
1
2
3
4
5
6
7
8
9
10
11
12
UPDATE Faits_Ventes
SET shop_sk=T .shop_sk
FROM (
    SELECT s.shop_sk, fait_ventes.document_id
    FROM dim_shop s, f_relation r, m_order o, fait_ventes
    WHERE r.document_model_id2 = fait_ventes.document_model
    AND r.relation_id2 = fait_ventes.document_id
    AND s.document_id = o.shopid
) AS T,
Faits_ventes
WHERE T.document_id = fait_ventes.document_id
je suis pas un expert en sql mais j'ai jamais vu sa ( la partie en rouge, ça existe !!? )
rinuom99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h06   #3
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Fais plutôt une jointure qu'une sous-requête.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h22.


 
 
 
 
Partenaires

Hébergement Web