OVH Cloud OVH Cloud

regrouper des requetes( Joindre???)

1 réponse
Avatar
bany
bonjour à tous,

voila, ds ma phase d apprentissage de SQL,

j ai quelques exercises sur la table NorthWind(pour ceux qui l on encore)

j aimerais joindre ces deux requete, dans l optique de faire un update...

mais apres une journee de recherche, je ne trouve pas, et aucun post ne
correspond...

voila mes deux requetes...

celle ci donne par produit l annee max de commande:

select max(annee) as maxannee,productID
from prixparproduit_etparcommande
group by productid
order by productID



celle ci donne le CA par produit et par annee:

select sum(T1.net)as CA,T1.annee,T1.productid
from prixparproduit_etparcommande t1
group by T1.annee,T1.productid
order by T1.productID


j aimerais joindre ces tables pour n avoir que le CA
par produit sur l annee max??
(mais la j y arrive pas!)

ensuite, j ai une requete update

update [Order Details]
set unitprice=CASE
WHEN CA < 10000 THEN unitprice* 1.02
WHEN CA BETWEEN 15000 AND 35000 THEN unitprice* 1.03
WHEN CA > 35000 THEN unitprice* 1.04
ELSE CA
END
from [Order Details],(select sum(net)as CA,annee,t1.productid
from prixparproduit_etparcommande t1
where annee in
(select distinct annee
from prixparproduit_etparcommande)
group by annee,T1.productid)
[Order Details]

(cette requete Update fonctionne, elle fait ses calcul sur la vue et met
a jour la table! mais sur chaque annee!!! alors que je ne veux prendre que
le CA
dela derniere annee)

j espere avoir ete clair, mais j avoue ne meme plus savoir ce dont j ai
besoin!
je suis passe par tout ce que je connaissais...
(il me reste plus qu a le faire a la main???? ;-)

merci de votre aide...

jean jacques

1 réponse

Avatar
jeorme
pour ta 1ere req , essaye:

select annee, productID, sum(net)
from prixparproduit_etparcommande
where annee = (select max(annee) from prixparproduit_etparcommande)
group by annee, productID


"bany" a écrit dans le message news:
br6tm3$3at$
bonjour à tous,

voila, ds ma phase d apprentissage de SQL,

j ai quelques exercises sur la table NorthWind(pour ceux qui l on encore)

j aimerais joindre ces deux requete, dans l optique de faire un update...

mais apres une journee de recherche, je ne trouve pas, et aucun post ne
correspond...

voila mes deux requetes...

celle ci donne par produit l annee max de commande:

select max(annee) as maxannee,productID
from prixparproduit_etparcommande
group by productid
order by productID



celle ci donne le CA par produit et par annee:

select sum(T1.net)as CA,T1.annee,T1.productid
from prixparproduit_etparcommande t1
group by T1.annee,T1.productid
order by T1.productID


j aimerais joindre ces tables pour n avoir que le CA
par produit sur l annee max??
(mais la j y arrive pas!)

ensuite, j ai une requete update

update [Order Details]
set unitpriceÊSE
WHEN CA < 10000 THEN unitprice* 1.02
WHEN CA BETWEEN 15000 AND 35000 THEN unitprice* 1.03
WHEN CA > 35000 THEN unitprice* 1.04
ELSE CA
END
from [Order Details],(select sum(net)as CA,annee,t1.productid
from prixparproduit_etparcommande t1
where annee in
(select distinct annee
from prixparproduit_etparcommande)
group by annee,T1.productid)
[Order Details]

(cette requete Update fonctionne, elle fait ses calcul sur la vue et met
a jour la table! mais sur chaque annee!!! alors que je ne veux prendre que
le CA
dela derniere annee)

j espere avoir ete clair, mais j avoue ne meme plus savoir ce dont j ai
besoin!
je suis passe par tout ce que je connaissais...
(il me reste plus qu a le faire a la main???? ;-)

merci de votre aide...

jean jacques