comment obtenir le comte dans sql server lors de l'utilisation des jointures internes?
J'ai requête suivante:
SELECT
h.helpcontent, s.MenuID, s.pkSitePageId, s.PageAliasName,
s.SitePageName,s.pagepath
FROM
tblSiteRolePermissions p
INNER JOIN
tblSitePages s ON p.fkSitePageId = s.pkSitePageId
INNER JOIN
tblHelp h ON s.pkSitePageId=h.fkSitePageId
WHERE
(p.fkRoleId = 4 AND p.ViewOnly = 1)
ORDER BY
s.pkSitePageId
Je veux obtenir le comte de tblSiteRolePermissions
. J'ai essayé le Count
mais son jetant un message d'erreur tel que:
Msg 8120, Niveau 16, État 1, Ligne 1
La colonne " tblHelp.HelpContent' est pas valide dans la liste de sélection, car il n'est pas contenue dans une fonction d'agrégation ou de la clause GROUP BY.
S'il vous plaît aidez-moi et laissez-moi savoir où je me trompe.
Mise à jour
Voici le code que j'essaie:
SELECT
count(p.pkRolePermissionId),
h.helpcontent, s.MenuID, s.pkSitePageId, s.PageAliasName,
s.SitePageName, s.pagepath
FROM
tblSiteRolePermissions p
INNER JOIN
tblSitePages s ON p.fkSitePageId = s.pkSitePageId
INNER JOIN
tblHelp h ON s.pkSitePageId = h.fkSitePageId
WHERE
(p.fkRoleId = 4 AND p.ViewOnly = 1)
ORDER BY
s.pkSitePageId
- Qu'essayez-vous compter?
- veuillez consulter ma question j'ai mis à jour..
- Le message d'erreur ne correspond pas à votre échantillon instruction SQL. Il n'est ni un
count()
(ou toute autre fonction d'agrégation), ni ungroup by
dans votre déclaration. Merci de nous montrer le véritable déclaration qui produit l'erreur. - veuillez consulter maintenant
- Voulez-vous obtenir le nombre de tous les lignes, ou le nombre de pièces pour un seul fkSitePageId? Ou pour toute autre combinaison de ces attributs?
- non, je veux obtenir toutes les lignes du comte
Vous devez vous connecter pour publier un commentaire.
Si vous êtes en utilisant une fonction d'agrégation, alors vous devez utiliser un
GROUP BY
clause sur les champs restants dans votreSELECT
instruction qui ne sont pas dans un agrégat. Similaire à ceci:Si vous souhaitez que le nombre de lignes, vous pouvez utiliser quelque chose comme ceci:
Ou vous pouvez utiliser CTE avec votre requête, similaire à ceci:
GROUP BY
. Quels sont exactement vous tentez decount()
qui est important dans la détermination de la syntaxe correcte.