[firebase-br] RES: Campos dinamicos

Renato Felix de Almeida renatofelixalmeida em gmail.com
Qua Jan 8 16:51:10 -03 2020


Acho que no sql server tem a consulta cruzada que faz isso. No firebird e
outros bancos você pode simular esse comportamento utilizando a clausula
case juntamente com as consultas agrupadas.

Segue abaixo um exemplo:

select
sum(case when data_venda between '1.1.2019' and '31.1.2019' then
valor_venda else 0 end) as JANEIRO,
sum(case when data_venda between '1.2.2019' and '28.2.2019' then
valor_venda else 0 end) as FEVEREIRO
sum(case when data_venda between '1.3.2019' and '31.3.2019' then
valor_venda else 0 end) as MARCO,
sum(case when data_venda between '1.4.2019' and '30.4.2019' then
valor_venda else 0 end) as ABRIL
from vendas

Neste caso para cada coluna ele avalia se a data está no período desejado,
caso sim retorna o valor da venda, caso não retorna 0, com o comando sum
ele vai somar os valores retornados. Não é a melhor forma de fazer, a
consulta cruzada no SQL Server é ótima, mas o bacana é que isso funciona em
todos os bancos que já testei, inclusive no sql server.


Em qua., 8 de jan. de 2020 às 16:42, Rubem Nascimento da Rocha <
djpardalrocha em hotmail.com> escreveu:

> Pesquise sobre a abordagem EAV (Entity Attribute Value) e veja se  existe
> alguma implementação voltada para FireBird!
>
> Boa sorte!
>
> Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para
> Windows 10
>
> De: rafael em sxti.com.br<mailto:rafael em sxti.com.br>
> Enviado:quarta-feira, 8 de janeiro de 2020 14:24
> Para: lista em firebase.com.br<mailto:lista em firebase.com.br>
> Assunto: [firebase-br] Campos dinamicos
>
> Prezados,
>
> Existe alguma forma no firebird de criar colunas/campos dinamicamente??
>
> Ex: Seleciono um período de vendas, mes 01 ao mes 04 de 2019,
> exibirá colunas MES01, MES02, MES03, MES04 e abaixo delas a qtde de vendas
> de determinados produtos.
>
> Resumindo, criar as colunas de acordo com o filtro do período informado.
>
>
> Rafael Voltani
> ______________________________________________
> FireBase-BR (www.firebase.com.br<http://www.firebase.com.br>) - Hospedado
> em www.locador.com.br<http://www.locador.com.br>
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


-- 
Renato
renatofelixalmeida em gmail.com



Mais detalhes sobre a lista de discussão lista