segunda-feira, 29 de julho de 2024

Criando um PIVOT para usar pelo SQL no Delphi



Esse relatório e muito pedido para demostrar valores por mês. O chamado de linhas em colunas.

 SQL

select 
  sum(case when MONTH(dt_contabil) = 1 then vl_subtotal_itens else 0 end) Mes01,
  sum(case when MONTH(dt_contabil) = 2 then vl_subtotal_itens else 0 end) Mes02,
  sum(case when MONTH(dt_contabil) = 3 then vl_subtotal_itens else 0 end) Mes03,
  sum(case when MONTH(dt_contabil) = 4 then vl_subtotal_itens else 0 end) Mes04,
  sum(case when MONTH(dt_contabil) = 5 then vl_subtotal_itens else 0 end) Mes05,
  sum(case when MONTH(dt_contabil) = 6 then vl_subtotal_itens else 0 end) Mes06,
  sum(case when MONTH(dt_contabil) = 7 then vl_subtotal_itens else 0 end) Mes07,
  sum(case when MONTH(dt_contabil) = 8 then vl_subtotal_itens else 0 end) Mes08,
  sum(case when MONTH(dt_contabil) = 9 then vl_subtotal_itens else 0 end) Mes09,
  sum(case when MONTH(dt_contabil) = 10 then vl_subtotal_itens else 0 end) Mes10,
  sum(case when MONTH(dt_contabil) = 11 then vl_subtotal_itens else 0 end) Mes11,
  sum(case when MONTH(dt_contabil) = 12 then vl_subtotal_itens else 0 end) Mes12,
  sum(vl_subtotal_itens) as ValorAno
from 
  venda_geral
where
  dt_contabil between '2020-01-01' and '2020-12-31'
Resultado
| Mes01 | Mes02 | Mes03 | Mes04 | Mes05 |  Mes06 | Mes07 | Mes08 | Mes09 | Mes10 | Mes11 |   Mes12 | ValorAno |
|-------|-------|-------|-------|-------|--------|-------|-------|-------|-------|-------|---------|----------|
|  50.5 |   191 | 105.5 |  10.5 |     0 | 105.99 |   5.5 | 105.5 |   0.5 |  17.5 |   1.5 | 12501.5 | 13095.49 |

Nenhum comentário:

📌 Tela de Splash, Tela de Login e Tela Principal em Delphi: Aprendendo na Prática

  No desenvolvimento de sistemas, a experiência do usuário começa muito antes de utilizar as principais funcionalidades do software. Elemen...