Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Livres SQL Server Discussion :

Changer de prix pour chaque genre de livre


Sujet :

Livres SQL Server

  1. #1
    Membre à l'essai
    Changer de prix pour chaque genre de livre
    bonjours a tous, je veux que vous m'aidiez.

    j'ai une table "Livre" dans cette derniere il y a un attribut (Prix_livre),
    ce que je veux : c'est augmenter le prix des livre par un pourcentage pour chaque genre de livre (ex : sport de 5%, Littérature de 6%, informatique de 3% ...)

    voila ce que j'ai utilisé :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Update Livre 
    Set Prix_livre = prix_livre + prix_livre*0.03
    Where Genre_livre = 'informatique'


    mais ce que je veux moi c de modifier tous les prix des livres dans une seule suite d'instruction (ne pas les répéter pour chaque type de livre).

    alors aider moi SvP ! et merci !

  2. #2
    Membre confirmé
    Ce que tu veux, c'est donc utiliser la requête que tu es écrite, mais sans la clause where, non ?

  3. #3
    Membre à l'essai
    ce que je veux c de d'ajouter pour chaque genre de livre son pourcentage

    sans répéter :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Update Livre
    Set Prix_livre = prix_livre + prix_livre*(pourcentage)
    Where Genre_livre = 'genre'


    pour chaque type de livre !

    les modifier tous dans une seule suite d'instruction ! et merci

  4. #4
    Membre confirmé
    En fait, je ne demandais pas plus d'explications, je proposais une solution...

    Je vais toutefois ajouter d'autres propositions :
    1) mettre un titre explicite, ça aide...
    2) utiliser les balises code, ça aide...

    Donc, j'explicite ma proposition :
    c'est donc utiliser la requête que tu es écrite, mais sans la clause where, non ? Parce que la clause where sert à faire une restriction, dans ton cas, une restriction à un genre; Or, tu veux que ce soit pour tous les gens. Donc, est-ce que ta requête, en enlevant la clause where, ne correspond pas à ta demande ?

  5. #5
    Membre à l'essai
    Citation Envoyé par Monstros Velu Voir le message


    Or, tu veux que ce soit pour tous les gens.
    c'est exactement ce que je veux, desole si j'ai pas bien compris ce que vous me disiez

  6. #6
    Expert éminent
    Voilà, j'ai fait ton devoir :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with sr as 
    ( select 'info' type, 5 taux 
    union select 'machin' type, 2 taux )
    update livres
    set prix_ttc = AA.prix * (1 + sr.taux /100.0)
    from LIVRES AA
    join SR
    	on SR.type = AA.type
    les règles du forum - mode d'emploi du forum
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    JE NE RÉPONDS PAS aux questions techniques par message privé.

  7. #7
    Membre à l'essai
    Citation Envoyé par Jerome_Mtl Voir le message
    Voilà, j'ai fait ton devoir :



    mais est ce que vous pouvez m'expliquer un peux ? , car je suis vraiment noob

  8. #8
    Expert éminent
    Citation Envoyé par thehurrica Voir le message


    mais est ce que vous pouvez m'expliquer un peux ? , car je suis vraiment noob
    qu'est ce que vous ne comprenez pas ?
    les règles du forum - mode d'emploi du forum
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    JE NE RÉPONDS PAS aux questions techniques par message privé.

  9. #9
    Membre à l'essai
    comme :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    WITH sr AS
    : c'est quoi sr

    je veux que vous utiliserez mes attributs :

    Livre (prix_livre, Genre_livre) pour bien comprendre, et désole si je t'ai derenge.
    merci encore !

  10. #10
    Expert éminent
    Pour le with : http://msdn.microsoft.com/en-us/libr.../ms175972.aspx
    SR c'est juste un alias, j'aurais pu mettre toto ou titi !

    Citation Envoyé par thehurrica Voir le message
    je veux que vous utilisiez mes attributs :
    Je vous mâche le boulot, alors faites tout de même un minimum d'effort de votre côté pour adapter le code à vos besoin, il ne faut pas exagérer...
    les règles du forum - mode d'emploi du forum
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    JE NE RÉPONDS PAS aux questions techniques par message privé.

  11. #11
    Membre à l'essai
    vous m'avez pas compris, ce que je voulais dire est ce que sr est le nom de la table ?

    SVP ! réécrivez moi ce "code" sans les nom attributs et les tables genre :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE (nom de la_table) 
    SET (nom_colonne)  = nom_colonne + nom_colonne 5%
    WHERE Genre_livre = (quelquon que)


    et désole encore pour le dérangement !

  12. #12
    Membre éprouvé
    Bonjour
    Alors With sr c'est une façon de faire comme si on avait une vue sr contenant quelquechose.
    En l'occurence dans sr tu as une table de correspondance.
    Si tu fais:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    WITH sr AS 
    ( SELECT 'info' type, 5 taux 
    union SELECT 'machin' type, 2 taux )

    Tu obtiendras
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    type	taux
    info	5
    machin	2


    Et donc ce que te proposes, Jerome_Mtl c'est de mettre à jour ta table Livres à partir de cette table de correspondance.
    Tu devrais essayer d'être plus calme dans tes réponses.
    "SVP ! réécrivez moi ce "code" ne donnes pas du tout envie de t'aider.
    Peut-être devrais tu nous donner le contexte. C'est un exercice que tu dois rendre, c'est un exercice pour t'entrainer?
    J'ai vu dans un autre post que tu demandais si une solution avec un case marcherait.
    Nous ne pouvons pas deviner que tu es en train d'apprendre le case.
    Et pour finir une autre façon d'écrire qui revient à la même chose que ce que Jerome_Mtl a écrit mais en utilisant tes noms de colonnes.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE livres
    SET prix_livre = AA.prix * (1 + sr.taux /100.0)
    FROM LIVRES AA
    JOIN ( SELECT 'info' Genre_livre, 5 taux 
    	union SELECT 'machin' Genre_livre, 2 taux 
         ) as SR
    	ON SR.Genre_livre = AA.Genre_livre


    Voilà
    Soazig