Pivot com parâmetros dinâmicos
Olá, pessoal. Bom dia.
Estou com uma dúvida, que na realidade nem sei se é possível de ser feito.
Vou tentar explicar.
Eu preciso utilizar o pivot (oracle), porém, os parâmetros precisam ser dinâmicos.
Eu preciso saber quantos beneficiários utilizaram o pronto atendimento durante um determinado período, e se esse beneficiário retornou ao PA com até 7 dias consecutivos.
Então o que eu pensei:
Em pegar o período e listar as datas. Isso eu consegui, com o comando:
SELECT DTINICIAL + LEVEL - 1 DATA
FROM (SELECT :DTINICIAL DTINICIAL FROM DUAL)
CONNECT BY DTINICIAL + LEVEL - 1 <= :DTFINAL
Show de bola, primeira fase concluída.
Na segunda fase eu queria utilizar uma query que me retornasse os beneficiários que utilizaram o PA dentro desse período (que é um parâmetro que o usuário irá passar)
E que ficasse dessa forma (vou tentar desenhar rs)
Exemplo: 01/03/2017 até 07/03/2017
-------------------------------------------------------------------------------------------------------------------------------------
Beneficiário | 01/03/2017 | 02/03/2017 | 03/03/2017 | 04/03/2017 | 05/03/2017 | 06/03/2017 | 07/03/2017
-------------------------------------------------------------------------------------------------------------------------------------
Fulano 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 2 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 3 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 4 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 5 | 1 | 0 | 1 | 0 | 0 | 0 | 0
-------------------------------------------------------------------------------------------------------------------------------------
Dai, vou trabalhar com essas informações.
O meu problema é:
No pivot você precisa passar o nome dos campos para ele te retornar em formato coluna. Só que como o período é um parâmetro livre, ou seja, podem colocar 3 dias ou 30 dias, preciso que ao passar essa informação para o pivot.
Me fiz clara, na dúvida? Alguém sabe como faz?
Grata,
Vanessa
Estou com uma dúvida, que na realidade nem sei se é possível de ser feito.
Vou tentar explicar.
Eu preciso utilizar o pivot (oracle), porém, os parâmetros precisam ser dinâmicos.
Eu preciso saber quantos beneficiários utilizaram o pronto atendimento durante um determinado período, e se esse beneficiário retornou ao PA com até 7 dias consecutivos.
Então o que eu pensei:
Em pegar o período e listar as datas. Isso eu consegui, com o comando:
SELECT DTINICIAL + LEVEL - 1 DATA
FROM (SELECT :DTINICIAL DTINICIAL FROM DUAL)
CONNECT BY DTINICIAL + LEVEL - 1 <= :DTFINAL
Show de bola, primeira fase concluída.
Na segunda fase eu queria utilizar uma query que me retornasse os beneficiários que utilizaram o PA dentro desse período (que é um parâmetro que o usuário irá passar)
E que ficasse dessa forma (vou tentar desenhar rs)
Exemplo: 01/03/2017 até 07/03/2017
-------------------------------------------------------------------------------------------------------------------------------------
Beneficiário | 01/03/2017 | 02/03/2017 | 03/03/2017 | 04/03/2017 | 05/03/2017 | 06/03/2017 | 07/03/2017
-------------------------------------------------------------------------------------------------------------------------------------
Fulano 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 2 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 3 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 4 | 1 | 0 | 1 | 0 | 0 | 0 | 0
Fulano 5 | 1 | 0 | 1 | 0 | 0 | 0 | 0
-------------------------------------------------------------------------------------------------------------------------------------
Dai, vou trabalhar com essas informações.
O meu problema é:
No pivot você precisa passar o nome dos campos para ele te retornar em formato coluna. Só que como o período é um parâmetro livre, ou seja, podem colocar 3 dias ou 30 dias, preciso que ao passar essa informação para o pivot.
Me fiz clara, na dúvida? Alguém sabe como faz?
Grata,
Vanessa
Vanessa Almeida
Curtidas 0
Respostas
Roberto Spernega
24/03/2017
Boa tarde Vanessa,
Você já deve ter resolvido essa questão...
Para gerar o pivot com parâmetros, só usando como "pivo xml"
Você já deve ter resolvido essa questão...
Para gerar o pivot com parâmetros, só usando como "pivo xml"
GOSTEI 0