1 日平均 20 リットル以上の牛乳を生産したすべての牛のテーブルを返す関数を作成しようとしています。これは私が思いついたコードです:
CREATE FUNCTION SuperCows (@year int)
RETURNS @supercows TABLE (
Name nvarchar(50),
AvgMilk decimal(4,2)
)
BEGIN
INSERT @supercows
SELECT c.Name, AVG(CAST(p.MilkQuantity AS decimal(4,2))) FROM MilkProduction AS p
INNER JOIN Cows AS c ON c.IDCow = p.CowID
WHERE YEAR(p.Date) = @year
GROUP BY p.CowID
HAVING AVG(CAST(p.MilkQuantity AS decimal(4,2))) > 20
RETURN
END
GO
関数を作成しようとしたときに発生するエラーは次のとおりです。
Column 'Cows.Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
私のSQLに関する知識はかなり限られているため、誰かがこれを解決するのを手伝ってくれることを望んでいました.