Bonjour tout le monde, voilà j'ai un peux de mal avec une petite requête,
quand j'essaye de l'exécuter j'ai un message d'erreur, voici ma requête :
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[GetNewsResume]
@audience nvarchar(1)
AS
SELECT News.Identifiant, News.Audience, News.Publication_Date, News.Titre,
COUNT(Comments.News_Id) AS CommentCount
FROM News INNER JOIN Comments ON News.Identifiant = Comments.News_Id
WHERE (News.Audience LIKE '%' + @audience + '%')
GROUP BY Comments.News_Id
ORDER BY News Publication_Date DESC
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
En gros ma requête me récupère des news de la table News et le nombre de
commentaire posté sur cette news dans la table Comments. Voici le message d'erreur
que me retourne SQL server :
Msg 8120, Level 16, State 1, Procedure GetNewsResume, Line 7 Column
'News.Identifiant' is invalid in the select list because it is not contained
in either an aggregate function or the GROUP BY clause.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rudi Bruchez
Kakid a écrit:
Msg 8120, Level 16, State 1, Procedure GetNewsResume, Line 7 Column 'News.Identifiant' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Bonjour,
-- code start -- ALTER PROCEDURE [dbo].[GetNewsResume] @audience nchar(1) AS BEGIN SET NOCOUNT ON
SELECT News.Identifiant, News.Audience, News.Publication_Date, News.Titre, COUNT(Comments.News_Id) AS CommentCount FROM dbo.News INNER JOIN dbo.Comments ON News.Identifiant = Comments.News_Id WHERE (News.Audience LIKE '%' + @audience + '%') GROUP BY News.Identifiant, News.Audience, News.Publication_Date, News.Titre ORDER BY News.Publication_Date DESC END GO -- code end --
Question subsidiaire : Que contient la colonne News.Audience ? Quel est son type de données ?
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, Solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
Kakid a écrit:
Msg 8120, Level 16, State 1, Procedure GetNewsResume, Line 7 Column
'News.Identifiant' is invalid in the select list because it is not contained
in either an aggregate function or the GROUP BY clause.
Bonjour,
-- code start --
ALTER PROCEDURE [dbo].[GetNewsResume]
@audience nchar(1)
AS BEGIN
SET NOCOUNT ON
SELECT News.Identifiant,
News.Audience,
News.Publication_Date,
News.Titre,
COUNT(Comments.News_Id) AS CommentCount
FROM dbo.News
INNER JOIN dbo.Comments ON News.Identifiant = Comments.News_Id
WHERE (News.Audience LIKE '%' + @audience + '%')
GROUP BY News.Identifiant, News.Audience, News.Publication_Date,
News.Titre
ORDER BY News.Publication_Date DESC
END
GO
-- code end --
Question subsidiaire : Que contient la colonne News.Audience ? Quel est son
type de données ?
--
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation,
Solutions MS SQL Server et informatique libre.
MCDBA, SCJP2
http://www.babaluga.com/
Msg 8120, Level 16, State 1, Procedure GetNewsResume, Line 7 Column 'News.Identifiant' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Bonjour,
-- code start -- ALTER PROCEDURE [dbo].[GetNewsResume] @audience nchar(1) AS BEGIN SET NOCOUNT ON
SELECT News.Identifiant, News.Audience, News.Publication_Date, News.Titre, COUNT(Comments.News_Id) AS CommentCount FROM dbo.News INNER JOIN dbo.Comments ON News.Identifiant = Comments.News_Id WHERE (News.Audience LIKE '%' + @audience + '%') GROUP BY News.Identifiant, News.Audience, News.Publication_Date, News.Titre ORDER BY News.Publication_Date DESC END GO -- code end --
Question subsidiaire : Que contient la colonne News.Audience ? Quel est son type de données ?
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, Solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/