ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problema no query postgres

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Jul 04, 2017 2:18 pm    Assunto: Problema no query postgres Responder com Citação

to com problema neste select aqui

Código:
 WITH CTE_SUMVENDA AS                                                             
 ( 

 SELECT                                                                     
 v.data_venda as data_venda,                                                     
 CAST(TO_CHAR(v.data_venda, 'DD/MM/YYYY')  || ' - ' || v.hora_venda AS VARCHAR(30)) as Data_Hora,     
 v.id as n_pedido,
 v.origem_venda,
 cl.cnpj_cpf as cnpj_cpf,
 cl.nome,           
 SUM(vi.qtd) AS Quantidade,                                                 
 SUM(vi.qtd * vi.preco_tabela) AS Preço_Bruto,                         
 --//alterado aqui
 COALESCE(v.valor_final_desconto, 0) + SUM((vi.preco_tabela * vi.qtd) - (vi.preco_venda * vi.qtd)) AS Desconto,
 SUM(vi.preco_tabela * vi.qtd) - COALESCE(v.valor_final_desconto, 0) - SUM((vi.preco_tabela * vi.qtd) - (vi.preco_venda * vi.qtd)) AS Total_Liquido,   
 --FIM ALTERAÇAO
 SUM(vi.valor_preco_custo * vi.qtd) AS Custo,                                   
 --SUM(vi.preco_tabela * vi.qtd) - COALESCE(v.valor_final_desconto, 0) + SUM((vi.preco_tabela * vi.qtd) - (vi.preco_venda * vi.qtd) - (vi.valor_preco_custo * vi.qtd)) AS Lucro, 
 ARRAY_TO_STRING(ARRAY_AGG(vi.nome_produto), ',') AS nome_produto,           
 ARRAY_TO_STRING(ARRAY_AGG(vi.codigo_barra), ',') AS codigo_barra             
 FROM venda V                                                                   
 INNER JOIN valor_inicial_caixa vic ON v.id_abertura_caixa = vic.id 
 LEFT JOIN webc_usuario wc ON wc.id = vic.id_usuario   
 LEFT JOIN funcionario f ON f.id = wc.id_funcionario   
 INNER JOIN cliente cl ON v.id_cliente = cl.id OR v.id_cliente = cl.id_web     
 INNER JOIN venda_itens vi on v.id = vi.id_venda                               
 WHERE v.situacao = 'C'   
 AND vic.status IN ('F', 'M')
 AND DATE(vic.data_hora_final) BETWEEN '04/07/2017' AND '04/07/2017'
 AND v.id_cadastro = 23096                                                     
 GROUP BY 1,2,3,4,5,6
 

 )                                                           
 SELECT data_venda, Data_Hora, n_pedido, origem_venda, cnpj_cpf,               
 CASE WHEN n_pedido IS NULL THEN                                                 
 CASE WHEN data_venda IS NULL                                                       
 THEN 'Total geral'                                                           
 ELSE 'Total do dia'                                                     
 END                                                                     
 ELSE nome                                                                   
 END AS nome,                                                                   
 CAST(CAST(SUM(Quantidade) AS NUMERIC(15,0)) AS VARCHAR(30)) as Quantidade,     
 CAST(TO_CHAR(SUM(Preço_Bruto),'R$  999G999G990D99')as varchar(30)) as Preço_Bruto,   
 CAST(TO_CHAR(SUM(Desconto),'R$  999G999G990D99')as varchar(30)) as Desconto,           
 CAST(TO_CHAR(SUM(Total_Liquido),'R$  999G999G990D99')as varchar(30)) as Total_Liquido,   
 CAST(TO_CHAR(SUM(Custo),'R$  999G999G990D99')as varchar(30)) as Custo, 
 -- ALTERADO AQUI     
 CAST(TO_CHAR(SUM(Total_Liquido - Custo),'R$  999G999G990D99')as varchar(30)) as Lucro,     
 Lucro AS IntLucro,                                                       
 codigo_barra, nome_produto,                                                   
 CAST('F' as varchar(10)) as pagamento,                                                     
 CAST('L' as varchar(10)) as visualizar,                                                     
 CAST('''' as varchar(10)) as excluir,                                                     
 COUNT(distinct data_venda) as Qtd_Dias                                         
 FROM CTE_SUMVENDA                                                             
 GROUP BY GROUPING SETS                                                         
 ( (data_venda, Data_Hora, n_pedido, origem_venda, cnpj_cpf, nome,             
 codigo_barra, nome_produto, pagamento, visualizar, excluir), (data_venda), () )   
 ORDER BY data_venda, Data_Hora                                               



tem um sum aqui
Código:
CAST(TO_CHAR(SUM(Total_Liquido - Custo),'R$  999G999G990D99')as varchar(30)) as Lucro,

e assim não quer reconhecer este campo
Código:
 Lucro AS IntLucro,       


Olha o erro
Citação:
ERROR: column "lucro" does not exist
LINE 50: Lucro AS IntLucro, ...
^
********** Error **********

ERROR: column "lucro" does not exist
SQL state: 42703
Character: 3259

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Jul 04, 2017 2:45 pm    Assunto: Responder com Citação

Boa tarde,

Não sei sei entendi corretamente a questão mas acho que seria o caso de repetir:

Código:
CAST(TO_CHAR(SUM(Total_Liquido - Custo),'R$  999G999G990D99')as varchar(30)) as IntLucro,


Espero que ajude


Editado pela última vez por imex em Seg Dez 04, 2023 11:50 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Jul 04, 2017 3:01 pm    Assunto: Responder com Citação

imex escreveu:
Boa tarde,

Não sei sei entendi corretamente a questão mas acho que seria o caso de repetir:

Código:
CAST(TO_CHAR(SUM(Total_Liquido - Custo),'R$  999G999G990D99')as varchar(30)) as IntLucro,


Espero que ajude
Isso mesmo Imex. obrigado.

Apenas não precisei usar os campos de mascaras neste modelo.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB