SQL Serverピボットテーブルを機能させようとしています。これにより、列の数を数えてから合計できます(合計6つ)。ピボット テーブルの目的は、任意の数の本番サイトのオンライン アンケート結果を集計することです。3 つの結果値 (Target、Action、Fail) を持つことができる 6 つの質問があります。私がやろうとしているのは、各質問のターゲット、アクション、失敗の数を数え、それぞれを合計することです。したがって、たとえば、本番サイト A には 2 つのターゲット、2 つのアクション、および 2 つの失敗があります。
私の理解では、SQL Server ピボット テーブルがこの情報を提供し、ASP.Net ReportViewer に表示できるということです。以下は私のコードですが、機能していません。専門家の助けが必要です。
SELECT PRODUCTION_Site,
[Target],
[Action],
[Fail]
FROM
(SELECT Production_Site,
SUM(Coding),
SUM(Measurable),
SUM(Appearance),
SUM(Aroma),
SUM(Flavour),
SUM(Texture)
FROM t_Pqe_Grocery
GROUP BY Production_Site) AS T
PIVOT
(
COUNT(Coding) FOR Grocery_Packaging_And_Coding IN ([Target],[Action],[Fail])
COUNT(Measurable) FOR Grocery_Measurable IN ([Target],[Action],[Fail])
COUNT(Appearance) FOR Grocery_Appearance IN ([Target],[Action],[Fail])
COUNT(Aroma) FOR Grocery_Aroma IN ([Target],[Action],[Fail])
COUNT(Flavour) FOR Grocery_Flavour IN ([Target],[Action],[Fail])
COUNT(Texture) FOR Grocery_Texture IN ([Target],[Action],[Fail])) AS P
これを回避する方法はありますか、それともピボットテーブルは解決策ではありませんか?
テーブルは
Production_Site,
Grocery_Packaging_And_Coding,
Grocery_Measurable,
Grocery_Appearance,
Grocery_Aroma,
Grocery_Flavour,
Grocery_Texture
テーブル内のデータは次のようになります。
Site A, Target, Action, Fail, Target, Target, Target
Site B, Target, Action, Fail, Target, Target, Target
Site C, Target, Target, Target, Target, Target, Target
Site A, Target, Target, Target, Target, Target, Target
私が探している結果は
Production_Site | Target | Action | Fail
Site A 10 1 1
Site B 4 1 1
Site C 6 0 0