Consulta retornando valor errado
11/11/2021
0
Boa tarde, montei uma pesquisa p/ saber a quantidade de entrega por lojas e por dia, porém eu gostaria que cada loja ficasse em uma coluna, fiz a consulta desta forma.
Desse jeito ele retorna o mesmo valor em todas as lojas. Alguém poderia me ajudar.
SELECT CASE EXTRACT(dow FROM orc.datahora) WHEN 0 THEN ''''''''Domingo'''''''' WHEN 1 THEN ''''''''Segunda-feira'''''''' WHEN 2 THEN ''''''''Terça-feira'''''''' WHEN 3 THEN ''''''''Quarta-feira'''''''' WHEN 4 THEN ''''''''Quinta-feira'''''''' WHEN 5 THEN ''''''''Sexta-feira'''''''' WHEN 6 THEN ''''''''Sábado'''''''' END AS "Dia da Semana", TO_CHAR (orc.datahora, ''''''''DD/MM/YYYY'''''''') "Data", COUNT(CASE WHEN unid.codigo = ''''''''01'''''''' THEN ent.id ELSE 0 END) "F1", COUNT(CASE WHEN unid.codigo = ''''''''02'''''''' THEN ent.id ELSE 0 END) "F2", COUNT(CASE WHEN unid.codigo = ''''''''03'''''''' THEN ent.id ELSE 0 END) "F3", COUNT(CASE WHEN unid.codigo = ''''''''04'''''''' THEN ent.id ELSE 0 END) "B1", COUNT(CASE WHEN unid.codigo = ''''''''05'''''''' THEN ent.id ELSE 0 END) "P+", COUNT(CASE WHEN unid.codigo = ''''''''06'''''''' THEN ent.id ELSE 0 END) "BR", COUNT(CASE WHEN unid.codigo = ''''''''07'''''''' THEN ent.id ELSE 0 END) "B2" FROM entrega AS ent INNER JOIN orcamento AS orc ON orc.id = ent.orcamentoid INNER JOIN unidadenegocio AS unid ON unid.id = orc.unidadenegocioid INNER JOIN venda AS vend ON vend.orcamentoid = orc.id WHERE CAST(orc.datahora AS DATE) BETWEEN ''''''''01/10/2021'''''''' AND ''''''''31/10/2021'''''''' AND vend."status" = ''''''''F'''''''' GROUP BY 2,1
Desse jeito ele retorna o mesmo valor em todas as lojas. Alguém poderia me ajudar.
Paulo
Curtir tópico
+ 0
Responder
Posts
11/11/2021
Paulo
Resolvi da seguinte forma
SELECT CASE EXTRACT(dow FROM orc.datahora) WHEN 0 THEN 'Domingo' WHEN 1 THEN 'Segunda-feira' WHEN 2 THEN 'Terça-feira' WHEN 3 THEN 'Quarta-feira' WHEN 4 THEN 'Quinta-feira' WHEN 5 THEN 'Sexta-feira' WHEN 6 THEN 'Sábado' END AS "Dia da Semana", TO_CHAR (orc.datahora, 'DD/MM/YYYY') "Data", COUNT(1) FILTER (WHERE unid.codigo = '01') "F1", COUNT(1) FILTER (WHERE unid.codigo = '02') "F2", COUNT(1) FILTER (WHERE unid.codigo = '03') "F3", COUNT(1) FILTER (WHERE unid.codigo = '04') "B1", COUNT(1) FILTER (WHERE unid.codigo = '05') "P+", COUNT(1) FILTER (WHERE unid.codigo = '06') "BR", COUNT(1) FILTER (WHERE unid.codigo = '07') "B2" FROM entrega AS ent INNER JOIN orcamento AS orc ON orc.id = ent.orcamentoid INNER JOIN unidadenegocio AS unid ON unid.id = orc.unidadenegocioid INNER JOIN venda AS vend ON vend.orcamentoid = orc.id WHERE CAST(orc.datahora AS DATE) BETWEEN '01/10/2021' AND '31/10/2021' AND vend."status" = 'F' GROUP BY 2,1
Responder
Clique aqui para fazer login e interagir na Comunidade :)