早上好,
我对这个查询有疑问:
SELECT
P.txt_nome AS Pergunta,
IP.nome AS Resposta,
COUNT(*) AS Qtd
FROM
tb_resposta_formulario RF
INNER JOIN formularios F ON
F.id_formulario = RF.id_formulario
INNER JOIN tb_pergunta P ON
P.id_pergunta = RF.id_pergunta
INNER JOIN tb_resposta_formulario_combo RFC ON
RFC.id_resposta_formulario = RF.id_resposta_formulario
INNER JOIN itens_perguntas IP ON
IP.id_item_pergunta = RFC.id_item_pergunta
WHERE
RF.id_formulario = 2
GROUP BY
P.txt_nome,
IP.nome
这是此查询的实际结果:
|佩贡塔| 回复 |Qtd|
|产品 |组合 1MB | 3 |
|产品 |组合 2MB | 5 |
|产品 |组合 4MB | 1 |
|产品 |组合 6MB | 1 |
|产品 |组合 8MB | 4 |
|地区 |MG | 3 |
|地区 |公关 | 2 |
|地区 |RJ | 3 |
|地区 |SC | 1 |
|地区 |SP | 5 |
这些是我所期待的结果:
|产品 | 地区 |Qtd|
|组合1MB | 名爵 | 3 |
|组合2MB | SP | 5 |
|组合4MB | SC | 1 |
|组合6MB | RJ | 1 |
|组合 8MB | 公关 | 2 |
我正在使用 PIVOT 和 UNPIVOT 运算符,但结果并不令人满意。
以前有人遇到过这种情况吗?你有什么可以提供的见解吗?
我已经分析了这些链接:
- SQL Server 2005 以未知列数为中心
- 在 SQL Server 2000 中将一组行转换为列
- SQL Server 2005,将列变成行
- 数据透视表和连接列
- sql 2005 中的 PIVOT
阿特,佩莱格里尼