Je voudrais la reponse a cette requete demande

Signaler
Messages postés
2
Date d'inscription
lundi 26 novembre 2018
Statut
Membre
Dernière intervention
26 novembre 2018
-
Messages postés
28971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juin 2020
-
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

1 réponse

Messages postés
28971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juin 2020
329
Bonjour (si si.. on commence par ça ici !!)

Ensuite pourquoi ne pas faire un where tout simplement ?
Messages postés
28971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juin 2020
329
Et tes deux coint sont identiques non ?
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 ?
Messages postés
28971
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juin 2020
329 >
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