私は現在、リーマンアクセス野球データベースを取得し、それをMSSQLに変換し、それに対する機能を構築する個人プロジェクトに取り組んでいます。私はデータベースを変換することができたし、バッティング、ピッチング、フィールディングの3つの統計ビューを構築しました。条項を使用して列値または連結テキストを表示し、ANDから除外するGROUP BY
私は現在、バッティングタイトルの資格を持つ選手のリストを返すためにバッティングビューに対してクエリを行っています。これは私が得ているどのくらいです:私が検証マスター(MLB.com)に対する私の結果を確認するためにORDER BY句を使用しています
SELECT Player, Season, SUM(AB) AS AB, SUM(BB)AS BB, SUM(HBP) AS HBP,
SUM(SH)AS SH, SUM(SF) AS SF, AVG(AVG)AS AVG, AVG(OBP) AS OBP,
AVG(SLG) AS SLG, AVG(OPS) AS OPS
FROM View_PlayerBatting
WHERE Season = '2016'
GROUP BY Player, Season
HAVING (SUM(AB) + SUM(BB) + SUM(HBP) + SUM(SH) + SUM(SF)) > 502
ORDER BY AVG(OPS) DESC
。
私が持っている問題は、このリストにチームを含めたいと思っていて、選手の中にはシーズン中半期に取引されていたので、チーム別にグループ化したくない7件のその他の認定結果)。私は、SELECT句に何か追加しようとする場合は、:私のselect句に
を、それがGROUP BYでチームを含めるために私を強制します。私のような、別のテーブルから値を返すサブクエリを使用しようとした場合、それはまた、GROUP BYでチームを含めるために私を強制的に:
IIF(COUNT(Team) = 1, (SELECT teamID FROM Teams where TeamID = View_PlayerBatting.Team), ...
それは私がチームの価値を知っているが必要場合のように思えます、私はそれをGROUP BY句に含める必要があります。静的な値や文字列のようにTeamカラム以外の何かを返すようにIIFの最初の結果を変更した場合、チームはGROUP BYにいなくても実行されます。どのように私はそれを提示しようとしている形式でチームの列を返すのですか?
おそらく、データを簡略化してサンプルデータと望ましい結果を表示することができます。 –