Je voudrais la reponse a cette requete demande

Messages postés
2
Date d'inscription
lundi 26 novembre 2018
Statut
Membre
Dernière intervention
26 novembre 2018
- - Dernière réponse : jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
- 26 nov. 2018 à 07:16
j'ai deux tables, table Membres et table Ventes, je voudrais afficher le nombre de vente des client de l'ontario (ontario = ON) et le nombres total des ventes et le pourcentage avec deux decimal
Voila comment je me suis prise
SELECT COUNT(dbo.BB_Ventes.VenteID) AS NbVentesTotal, COUNT(dbo.BB_Ventes.VenteID) AS NbVenteProvincial
FROM dbo.BB_Membres INNER JOIN
dbo.BB_Ventes ON dbo.BB_Membres.NoMembre = dbo.BB_Ventes.NoMembre
HAVING (dbo.BB_Membres.ProvCode = 'ON')

mais il y'a d'erreur parce qu'il exige le Group By et je comprend rien de ca
Afficher la suite 

1 réponse

Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318
0
Merci
Bonjour (si si.. on commence par ça ici !!)

Ensuite pourquoi ne pas faire un where tout simplement ?
jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318 -
Et tes deux coint sont identiques non ?
lagas965
Messages postés
2
Date d'inscription
lundi 26 novembre 2018
Statut
Membre
Dernière intervention
26 novembre 2018
-
je fais un where sur qu'elle champ ?
jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318 > lagas965
Messages postés
2
Date d'inscription
lundi 26 novembre 2018
Statut
Membre
Dernière intervention
26 novembre 2018
-
Ben.. à la place de
HAVING (dbo.BB_Membres.ProvCode = 'ON') 

WHERE  dbo.BB_Membres.ProvCode = 'ON'


mais bon... ça ne donnera pas le résultat souhaité de toutes façons....
Comme je te l'ai indiqué, tu as deux fois le même COUNT et rien qui ne puisse les différencier... et si tu mets un HAVING ou un WHERE.. tu n'auras pas le nombre TOTAL... juste les lignes qui sont pour l'ontario

Et puis je pense que tu prends ta requête dans le mauvais sens...
Vu que ce sont les ventes qui t'interesse.. je commencerai par
FROM dbo.BB_Ventes

et je ferai la jointure sur les membres
LEFT JOIN  dbo.BB_Membres  ON dbo.BB_Membres.NoMembre = dbo.BB_Ventes.NoMembre


Tu devrais également t'interesser à la clause IF/ELSE
https://docs.microsoft.com/fr-fr/sql/t-sql/language-elements/if-else-transact-sql?view=sql-server-2017
Commenter la réponse de jordane45