SQL FIREBIRD CONSULTA CRUZADA

Delphi

Banco de Dados

17/08/2019

bOM DIA!
Utilizo Firebird 2.5 e Delphi
Tenho uma tabela de pedidos
Preciso fazer um consulta cruzada para geração de um grafico.
A Tabela e TB_PEDIDOS
ID|ITEM|DESC |QTDE|DTENTREGA |DTENVIO
01|0001|caixa |01 |01/01/2018 |04/02/2018
02|0001|caixa |01 |01/01/2019 |04/02/2019
03|0002|tela |02 |25/09/2019 |01/08/2019
04|0003|lapis |02 |25/04/2019 |26/04/2019
05|0004|grade |02 |25/09/2019 |02/08/2019
06|0001|caixa |01 |10/01/2018 |04/02/2019
07|0001|caixa |01 |10/08/2019 |15/08/2019
08|0001|caixa |01 |30/08/2019 |16/08/2019

Gostaria de fazer uma SQL Consulta para transformar a informação na configuração
abaixo:

ANO |Mes|total|Atrasado|NoPrazo
2018|01 |02 |02 |0
2019|01 |01 |01 |0
2019|04 |01 |01 |0
2019|08 |02 |01 |01
2019|09 |02 |00 |02

Alguem sabe se é possivel?
Daniel Antonio

Daniel Antonio

Curtidas 0

Melhor post

Fernando Ito

Fernando Ito

20/08/2019

bOM DIA!
Utilizo Firebird 2.5 e Delphi
Tenho uma tabela de pedidos
Preciso fazer um consulta cruzada para geração de um grafico.
A Tabela e TB_PEDIDOS
ID|ITEM|DESC |QTDE|DTENTREGA |DTENVIO
01|0001|caixa |01 |01/01/2018 |04/02/2018
02|0001|caixa |01 |01/01/2019 |04/02/2019
03|0002|tela |02 |25/09/2019 |01/08/2019
04|0003|lapis |02 |25/04/2019 |26/04/2019
05|0004|grade |02 |25/09/2019 |02/08/2019
06|0001|caixa |01 |10/01/2018 |04/02/2019
07|0001|caixa |01 |10/08/2019 |15/08/2019
08|0001|caixa |01 |30/08/2019 |16/08/2019

Gostaria de fazer uma SQL Consulta para transformar a informação na configuração
abaixo:

ANO |Mes|total|Atrasado|NoPrazo
2018|01 |02 |02 |0
2019|01 |01 |01 |0
2019|04 |01 |01 |0
2019|08 |02 |01 |01
2019|09 |02 |00 |02

Alguem sabe se é possivel?


Agora deu certo:

select extract (year FROM dtentrega) ano
, extract (month from dtentrega) mes
, count(dtentrega) Total
, sum(case when extract (day FROM dtentrega) < extract(day from dtenvio) then 1 else 0 end) Atrasado
, sum(case when extract (day FROM dtentrega) >= extract(day from dtenvio) then 1 else 0 end) NoPrazo
from pedido
group by 1,2

Abraço,
ITO
GOSTEI 1

Mais Respostas

Fernando Ito

Fernando Ito

17/08/2019

olá Daniel Antonio,

Por enquanto eu consegui a metade do que você precisa rsrs

select extract (year FROM dtentrega) ano
, extract (month from dtentrega) mes
, count(dtentrega) Total
from pedido
group by 1,2

se eu conseguir o contador para os atrasados e os noprazo eu volto a postar


Um abraço,
ITO
GOSTEI 0
Daniel Antonio

Daniel Antonio

17/08/2019

bOM DIA!
Utilizo Firebird 2.5 e Delphi
Tenho uma tabela de pedidos
Preciso fazer um consulta cruzada para geração de um grafico.
A Tabela e TB_PEDIDOS
ID|ITEM|DESC |QTDE|DTENTREGA |DTENVIO
01|0001|caixa |01 |01/01/2018 |04/02/2018
02|0001|caixa |01 |01/01/2019 |04/02/2019
03|0002|tela |02 |25/09/2019 |01/08/2019
04|0003|lapis |02 |25/04/2019 |26/04/2019
05|0004|grade |02 |25/09/2019 |02/08/2019
06|0001|caixa |01 |10/01/2018 |04/02/2019
07|0001|caixa |01 |10/08/2019 |15/08/2019
08|0001|caixa |01 |30/08/2019 |16/08/2019

Gostaria de fazer uma SQL Consulta para transformar a informação na configuração
abaixo:

ANO |Mes|total|Atrasado|NoPrazo
2018|01 |02 |02 |0
2019|01 |01 |01 |0
2019|04 |01 |01 |0
2019|08 |02 |01 |01
2019|09 |02 |00 |02

Alguem sabe se é possivel?


Agora deu certo:

select extract (year FROM dtentrega) ano
, extract (month from dtentrega) mes
, count(dtentrega) Total
, sum(case when extract (day FROM dtentrega) < extract(day from dtenvio) then 1 else 0 end) Atrasado
, sum(case when extract (day FROM dtentrega) >= extract(day from dtenvio) then 1 else 0 end) NoPrazo
from pedido
group by 1,2

Abraço,
ITO
GOSTEI 0
POSTAR