Requettes sql
yomismo
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
Difficle de reprendre le SQL 10 ans apres avoir abandonné me voila face a un problème syntaxique que je n'arrive pas a résoudre!
si vous pouvez aider?
merci par avance
ci joint photo des tables
http://yomismo.free.fr/tables.jpg
c) Write a SQL statement that returns the Sum of Sales Amount grouped by Product Category.
d) Write a SQL statement that returns the Sum of Sales Amount grouped by Product Category having sales greater than 1500
e) Write a SQL Statement that returns the Distinct count of customers from the Sales table
f) Write a SQL Statement that returns a list of products that do not appear the Sales table.
merci
Michel Aquadié.
Difficle de reprendre le SQL 10 ans apres avoir abandonné me voila face a un problème syntaxique que je n'arrive pas a résoudre!
si vous pouvez aider?
merci par avance
ci joint photo des tables
http://yomismo.free.fr/tables.jpg
c) Write a SQL statement that returns the Sum of Sales Amount grouped by Product Category.
d) Write a SQL statement that returns the Sum of Sales Amount grouped by Product Category having sales greater than 1500
e) Write a SQL Statement that returns the Distinct count of customers from the Sales table
f) Write a SQL Statement that returns a list of products that do not appear the Sales table.
merci
Michel Aquadié.
A voir également:
- Requettes sql
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Sql lister les tables ✓ - Forum Programmation
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
3 réponses
Bonjour,
Je donne la réponse pour la c), mais pour les autres je te laisserai chercher un peu :)
c)
SELECT p.ProductCategory, SUM(s.SalesAmount)
FROM Products p
INNER JOIN Sales s ON p.ProductID = s.ProductID
GROUP BY p.ProductCategory
d)
Là, ça dépend de l'interprétation de l'énoncé. Si le « having sales greater than 1500 » signifie que le montant total des ventes pour la catégorie doit être supérieur à 1500, il faut utiliser une clause HAVING. Si il signifie qu'il ne faut prendre en compte que les ventes dont le montant unitaire est supérieur à 1500, alors il faut utiliser une clause WHERE.
e)
Un simple COUNT DISTINCT fera l'affaire.
f)
Deux possibilités. Soit une jointure externe, puis une condition NULL sur un champ de la jointure, soit une requête imbriquée du style NOT IN.
La première est plus rapide à l'exécution, mais la deuxième plus facile à comprendre et à écrire.
Xavier
Je donne la réponse pour la c), mais pour les autres je te laisserai chercher un peu :)
c)
SELECT p.ProductCategory, SUM(s.SalesAmount)
FROM Products p
INNER JOIN Sales s ON p.ProductID = s.ProductID
GROUP BY p.ProductCategory
d)
Là, ça dépend de l'interprétation de l'énoncé. Si le « having sales greater than 1500 » signifie que le montant total des ventes pour la catégorie doit être supérieur à 1500, il faut utiliser une clause HAVING. Si il signifie qu'il ne faut prendre en compte que les ventes dont le montant unitaire est supérieur à 1500, alors il faut utiliser une clause WHERE.
e)
Un simple COUNT DISTINCT fera l'affaire.
f)
Deux possibilités. Soit une jointure externe, puis une condition NULL sur un champ de la jointure, soit une requête imbriquée du style NOT IN.
La première est plus rapide à l'exécution, mais la deuxième plus facile à comprendre et à écrire.
Xavier
merci xavier
apres reflecxion jai fait cela
e
SELECT COUNT(DISTINCT Customer) from Sales
f
jai utilsie le NOT IN mais je netais pas sur
en revanche je sèche sur la D... merci quand meme
bonne journee
apres reflecxion jai fait cela
e
SELECT COUNT(DISTINCT Customer) from Sales
f
jai utilsie le NOT IN mais je netais pas sur
en revanche je sèche sur la D... merci quand meme
bonne journee
Pour la d) c'est comme pour la c), mais en précisant soit
HAVING SUM(s.SalesAmount) > 1500
soit
WHERE s.SalesAmount > 1500.
Honnêtement, l'énoncé est ambigu et ne permet pas de décider entre les deux, qui n'ont pas le même sens. On peut se dire qu'il faut utiliser Having car ce mot est repris dans l'énoncé...
Having va donner comme résultat
Mountain Bike 2000
Road Bike 3500
Where va donner comme résultat
Mountain Bike 2000
HAVING SUM(s.SalesAmount) > 1500
soit
WHERE s.SalesAmount > 1500.
Honnêtement, l'énoncé est ambigu et ne permet pas de décider entre les deux, qui n'ont pas le même sens. On peut se dire qu'il faut utiliser Having car ce mot est repris dans l'énoncé...
Having va donner comme résultat
Mountain Bike 2000
Road Bike 3500
Where va donner comme résultat
Mountain Bike 2000