Outra pergunta do PowerBI: tenho três tabelas que tratam de pessoas que se inscrevem em eventos:
Evento
EventId (PK)
Event Name
Event Date
Registro de Evento
EventRegistrationId (PK)
EventId (FK to Event)
Registration Date
First Name
Last Name
E-Mail
EventRegistrationRespostas
ID (PK)
Event Registration (FK to EventRegistration)
Field Name
Value
O problema é: a inscrição no evento acontece com base em um formulário web, e o gerente do evento pode criar esse formulário à vontade e pode incluir praticamente qualquer tipo de pergunta para a pessoa que se inscreveu, então a EventRegistrationAnswers
tabela pode conter qualquer número de respostas (fornecido na inscrição) e para cada evento isso pode ser diferente.
Portanto, para um registro de evento com Id = 4711, posso ter respostas como esta - alguns são campos de texto livre, alguns são valores escolhidos em uma lista suspensa, alguns são caixas de seleção Sim/Não:
Eu ia | EventRegistrationId | Nome do campo | Valor |
---|---|---|---|
123 | 4711 | Saudação | senhor |
124 | 4711 | OK para armazenar dados | Sim |
125 | 4711 | Inscreva-se no boletim informativo | Não |
126 | 4711 | Chegada | De transporte público |
Minha tarefa é esta:
- As pessoas que organizam eventos gostariam de escolher seu evento em uma lista (que é gerenciada por uma segmentação de dados, com base na
Event
tabela - funciona bem) - Eles gostariam então de ver todas as inscrições para aquele evento, incluindo todas as respostas dadas no formulário de inscrição
Tentei aplicar uma operação "Coluna Dinâmica" à tabela "Respostas de Registro de Eventos", que converte os dados em uma tabela com nomes de colunas baseados na coluna "Nome do Campo" da tabela original - até agora - tudo bem. MAS isso também converte os dados em uma linha para cada resposta dada - então, para um único registro, recebo uma linha por resposta dada em que uma coluna tem um valor - algo assim:
EventRegistrationId | Saudação | OK para armazenar dados | Inscreva-se no boletim informativo | Chegada |
---|---|---|---|---|
4711 | senhor | (NULO) | (NULO) | (NULO) |
4711 | (NULO) | Sim | (NULO) | (NULO) |
4711 | (NULO) | (NULO) | Não | (NULO) |
4711 | (NULO) | (NULO) | (NULO) | De transporte público |
Agora, se eu mesclar a EventRegistration
tabela com esta tabela dinâmica, com base em EventRegistrationId
, obtenho várias linhas para cada registro - embora eu realmente gostaria de ter uma única linha para cada registro, com todas as quatro colunas fornecendo seus respectivos ( não NULL ) valor.
Alguma idéia de como posso fazer isso? De alguma forma, parece que não consigo influenciar muito a operação "PIVOT COLUMN" ... e não encontrei uma maneira de "condensar" essas quatro linhas - com apenas uma coluna cada uma preenchida com um valor - em um único linha onde todas as colunas teriam um valor diferente de NULL.... (eu olhei para GROUP BY
e outros, mas nada parecia caber na minha conta)
Alguma ideia?
Antes de pivotar
EventRegistrationAnswers
, solte/remova aId
coluna.