aşağıdaki sütunları içeren bir tablo var dökme değere bir yıldız işareti.Seç MAX değeri ve
ben bu sorguyu denedi -
SELECT Player.LastName + ' ' + LEFT(player.FirstName, 1) as PlayerName,COUNT(DISTINCT match.MatchId) AS Matches,
COUNT(CASE WHEN BatInnings.fk_HowOut_Id != 1 THEN 1 ELSE NULL END) AS 'Innings',
COUNT(CASE WHEN BatInnings.fk_HowOut_Id = 7 THEN 1 ELSE NULL END) AS 'Not Outs',
SUM(BatInnings.Runs) AS 'Aggregate',
CASE WHEN (COUNT(CASE WHEN BatInnings.fk_HowOut_Id != 1 THEN 1 ELSE NULL END) - COUNT(CASE WHEN BatInnings.fk_HowOut_Id = 7 THEN 1 ELSE NULL END)) > 0 THEN SUM(BatInnings.Runs)/(COUNT(CASE WHEN BatInnings.fk_HowOut_Id != 1 THEN 1 ELSE NULL END) - COUNT(CASE WHEN BatInnings.fk_HowOut_Id = 7 THEN 1 ELSE NULL END)) ELSE 0 END AS 'Average',
CAST(MAX(BatInnings.Runs) AS varchar(3)) + CASE WHEN BatInnings.fk_HowOut_Id = 7 THEN '*'
ELSE ''
END AS 'High Score'
FROM Match
JOIN Innings ON Innings.fk_Match_Id = Match.MatchId
JOIN BatInnings ON BatInnings.fk_Innings_Id = Innings.Id
Join Player On player.Id = BatInnings.fk_Player_Id
WHERE Player.ClubId = 1088
group by Player.id, player.FirstName, player.LastName
Order by PlayerName
ve i'nin döndürülen bir hata mesajı alıyorum:
Column 'BatInnings.fk_HowOut_Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
i doğru yöne çekebilir miyiz.
Teşekkür .. sorgunun bağlamında itibaren
tam sorgu gönderebilir miyim bu sorgu ile birlikte çalışan sorgu var: Yani görüyoruz hataya neden olur seçme içinde bir toplama işlevi, dış koyar –
Hata iletisi yüklendiğini ve silindiğini açıklıyor - sorguya göre bir grubun select yan tümcesinde fk_HowOut_Id kullanıyorsunuz, ancak grubun yan tümce tümcesine göre değil. –