SQL Server Tableau croisé dynamique avec des comptes et des Sommes

J'essaye de faire un Serveur SQL de tableau croisé dynamique de travail qui me permet de compter et puis additionner un nombre de colonnes (6 au total). Le but du tableau croisé dynamique est à l'agrégation en ligne les résultats d'un questionnaire pour un certain nombre de sites de production. Il y a 6 questions qui peuvent avoir 3 valeurs de résultat - Cible, de l'Action et de l'Échec. Ce que j'essaie de faire est de compter le nombre de Cible, de l'Action et de l'Échec pour chaque question, puis de résumer cela pour chaque. Ainsi, par exemple, le Site de Production pourrait avoir 2, 2 et 2 Échouer.

Ma compréhension est que le Serveur SQL de tableau croisé dynamique peut fournir cette information, qui peuvent ensuite être affichées en ASP.Net ReportViewer. Ci-dessous mon code, mais ça ne fonctionne pas, et pourrait faire avec un peu l'aide d'un expert:

     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

Est-il un moyen de les contourner cela, ou est-Pivot table pas la solution?

Table est

Production_Site,
Grocery_Packaging_And_Coding,
Grocery_Measurable,
Grocery_Appearance,
Grocery_Aroma,
Grocery_Flavour,
Grocery_Texture

Données de la table comme ceci:

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

Le résultat que je cherche, c'est

Production_Site | Target | Action | Fail
Site A              10       1       1
Site B               4       1       1
Site C               6       0       0
  • pouvez-vous fournir la structure de la table, quelques exemples de données et ensuite le résultat souhaité de l' PIVOT?
  • Je garde ça pour les principales données - vérifier la question d'origine pour plus de détails
  • Ce qui ne fonctionne pas? Vous pouvez configurer SQL Violon exemple?
  • Juste ajouté un peu de structure de table, de données et un exemple de résultat, je suis en train de réaliser
InformationsquelleAutor Andy5 | 2012-11-16