次のような選択があります。
SELECT
ReportingDate
, PortfolioID
, PortfolioNme
, CASE
WHEN @ReportType = 'GeoCountry' THEN Infoportal.dbo.fn_Generic_ProperCase(Country)
WHEN @ReportType = 'GeoEquity' THEN Region
END AS Country
, RANK() OVER (PARTITION BY PortfolioID ORDER BY SUM(Percentage) DESC, CASE WHEN @ReportType = 'GeoCountry' THEN Country WHEN @ReportType = 'GeoEquity' THEN Region END) AS [Rank]
, SUM(Percentage) AS [Weight]
FROM @Worktable as WT
WHERE WT.IssueType1 <> '010' AND WT.IssueType2 <> '055'
GROUP BY WT.ReportingDate
, WT.PortfolioID
, WT.PortfolioNme
, CASE
WHEN @ReportType = 'GeoCountry' THEN WT.Country
WHEN @ReportType = 'GeoEquity' THEN WT.Region
END
私がやろうとしているのは、@ReportType に応じて国または地域ごとにグループ化し、パーセンテージとランクの合計を表示することです。
ただし、エラーが発生し続けます:
メッセージ 8120、レベル 16、状態 1、行 349
列 '@Worktable.Country' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。
メッセージ 8120、レベル 16、状態 1、行 350
列 '@Worktable.Region' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。
これはとても簡単で、本当にイライラします。助けていただければ幸いです。
ありがとう