0

おはようございます、

このクエリに問題があります:

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 |
|Região |MG | 3 |
|地域 |PR | 2 |
|Região |RJ | 3 |
|Região |SC | 1 |
|地域 |SP | 5 |

これらは私が期待していた結果です:

|製品 | レギオン |Qtd|
|コンボ 1MB | MG | 3 |
|コンボ 2MB | SP | 5 |
|コンボ 4MB | SC | SC | 1 |
|コンボ 6MB | RJ | 1 |
|コンボ8MB | 広報 | 2 |

PIVOT および UNPIVOT 演算子を使用していますが、満足のいく結果が得られません。

誰かがすでにこの状況に直面したことがありますか? 提供できる洞察はありますか?

私はすでにこれらのリンクを分析しました:

アット、ペレグリーニ

4

1 に答える 1

2

「明らかな」答えは次のとおりです。クエリが正しくないためです。テーブルの構造と、あなたが何を達成しようとしているのかについて、私たちは本当に何も知りません。

クエリの少なくとも 1 つの非常に基本的な問題について:|Produto | Região |Qtd|応答の列を期待していますが、クエリは明確に列PerguntaRepostaおよびを選択しますQtd。これは、取得している結果と一致します。

SQL についてどのくらい精通していますか? 入門書を読む価値があるかもしれません。これは良い入門書としてお勧めします。(Oracle を使用しますが、原則は同じです)

于 2009-01-27T13:47:35.877 に答える