Requettes sql
Fermé
yomismo
-
26 oct. 2011 à 11:05
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 oct. 2011 à 11:56
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 oct. 2011 à 11:56
A voir également:
- Requettes sql
- Sql server recovery - Télécharger - Gestion de données
- Logiciel sql - Télécharger - Bases de données
- Sql replace plusieurs valeurs - Forum Programmation
- Dupliquer une table sql ✓ - Forum Programmation
- Sql commence par ✓ - Forum Webmastering
3 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 oct. 2011 à 11:38
26 oct. 2011 à 11:38
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
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 26/10/2011 à 11:58
Modifié par Reivax962 le 26/10/2011 à 11:58
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