Ajouté table réelle de l'échantillon, ainsi que des résultats de l'échantillon ....incapable de retourner 0 lorsque aucune donnée trouvée dans la requête interne de tableau croisé dynamique, utilisé soudent aussi bien ... mais pas de chance
SELECT 'RESULT' AS Ratio, coalesce([colData1],0) data1,
coalesce([colData2],0) data2, coalesce([colData4],0) data4,
coalesce([colData7],0) data7
FROM (SELECT columnName1,columnName2 FROM table
where columnName3 = 'ABC' and columnName4='def' and columnName5='fgh') AS
SREC PIVOT (sum(columnName2) FOR columnName1 IN ([colData1],colData2
, colData4 ,colData7)) AS PVT
Tableau d'échantillon : Sample Table Tableau
Résultat: Sample Result for above query
- ################################# ##################
Maintenant, si je change mon ma requête:
SELECT 'RESULT' AS Ratio, coalesce([colData1],0) data1,
coalesce([colData2],0) data2,
coalesce([colData4],0) data4,
coalesce([colData7],0) data7
FROM (SELECT columnName1,columnName2
FROM table where columnName3 = 'DEF' and columnName4='def' and columnName5='fgh'
) AS SREC
PIVOT
(
sum(columnName2)
FOR columnName1 IN ([colData1],colData2 ,colData4 ,colData7 )
) AS PVT
Ensuite, il devrait afficher: toutes les données de la colonne de pivot comme 0 ...
Comme je l'ai 29 valeurs de données uniques pour columnName1, je suis juste essayer utiliser le tableau croisé dynamique à la place des instructions individuelles. Utilisez simplement l'agrégation conditionnelle.
Modifier votre question et de fournir des exemples de données et les résultats souhaités. –