SQL FIREBIRD CONSULTA CRUZADA

17/08/2019

0

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

Responder

Post mais votado

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

Fernando Ito

Fernando Ito
Responder

Mais Posts

20/08/2019

Fernando Ito

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
Responder

20/08/2019

Daniel Antonio

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
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar