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 

Erro na soma sql firebird 2.5?
Ir à página 1, 2  Próximo
 
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: Qua Abr 03, 2019 1:20 pm    Assunto: Erro na soma sql firebird 2.5? Responder com Citação

Se eu fizer sql assim
Código:
SELECT     vi.quantidade,
           vi.nome_pedido,
           SUM( QUANTIDADE ),
           SUM( PRECO_TOTAL_DESC_AJUST ),
           SUM( VALOR_RATEIO_TITULAR ),
           SUM( VALOR_RATEIO_ASSISTENTE ),
           SUM( CUSTO_COM_AQUISICAO ),
           SUM( CUSTO_COM_PRODUTOS_TOTAL ),
           SUM( CUSTO_OPERACIONAL ),
          sum((select sum(vp.valor_parcela) from vendas_pagamento vp where vp.codigo = v.codigo and vp.anulado is null))
      FROM VENDAS_ITENS VI, VENDAS V
     WHERE V.CODIGO = VI.CODIGO AND
           V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
           VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
           VI.CODIGO_PEDIDO = :COD_PEDIDO AND
           VI.TIPO_PEDIDO = :TIPO AND
           VI.ITEM_CANCELADO = 'Nao' AND
           VI.TIPO IS NULL
group by 1, 2


Meu resultado de soma é
Citação:
SUM = 27
SUM1 = 486,000
SUM4 = 480,500
SUM7 = 3.103,000


Se eu mudo assim
Código:
SELECT     vi.quantidade,
           vi.nome_pedido,
           SUM( QUANTIDADE ),
           SUM( PRECO_TOTAL_DESC_AJUST ),
           SUM( VALOR_RATEIO_TITULAR ),
           SUM( VALOR_RATEIO_ASSISTENTE ),
           SUM( CUSTO_COM_AQUISICAO ),
           SUM( CUSTO_COM_PRODUTOS_TOTAL ),
           SUM( CUSTO_OPERACIONAL ),
          sum((select sum(vp.valor_parcela) from vendas_pagamento vp where vp.codigo = v.codigo and vp.anulado is null))
      FROM VENDAS_ITENS VI
 INNER JOIN VENDAS V ON V.CODIGO = VI.CODIGO
 INNER JOIN vendas_pagamento vp ON vp.codigo = v.codigo
      AND vp.anulado is null
 INNER JOIN FORMAS_PAGAMENTO fp ON vp.forma_pagamento = fp.codigo
      WHERE V.CODIGO = VI.CODIGO and
            V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
            VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
            VI.CODIGO_PEDIDO = :COD_PEDIDO AND
            VI.TIPO_PEDIDO = :TIPO AND
            VI.ITEM_CANCELADO = 'Nao' AND
            VI.TIPO IS NULL
        group by 1,2


Meu resultado de soma é
Citação:
SUM = 32
SUM1 = 576,000
SUM4 = 570,500
SUM7 = 4103,000


Preciso que fique o mesmo resultado acima do primeiro select mais com a forma do segundo sql
_________________
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: Qua Abr 03, 2019 2:42 pm    Assunto: Responder com Citação

Boa tarde,

Desconfio que o resultado está diferente porque a segunda query tem um Join a mais com a tabela vendas_pagamento (e dessa com a tabela FORMAS_PAGAMENTO), então serão retornados mais registros quando houver mais de um registro na vendas_pagamento para uma mesma venda.
Parece a princípio que esse Join não é necessário.

Espero que ajude


Editado pela última vez por imex em Seg Set 20, 2021 10:13 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: Qua Abr 03, 2019 2:52 pm    Assunto: Responder com Citação

imex escreveu:
Boa tarde,

Desconfio que o resultado está diferente porque a segunda query tem um Join a mais com a tabela vendas_pagamento (e dessa com a tabela FORMAS_PAGAMENTO), então serão retornados mais registros quando houver mais de um registro na vendas_pagamento para uma mesma venda.
Parece a princípio que esse Join não é necessário.

Espero que ajude


Olá Imex,. qual join vc acha que esta a mais ai?

Seria assim então pegando pelo descrição em vez de codigo ja que estão em lugares diferentes


Obrigado
Código:
SELECT     vi.quantidade,
           v.data_hora,
           SUM( QUANTIDADE ),
           SUM( PRECO_TOTAL_DESC_AJUST ),
           SUM( VALOR_RATEIO_TITULAR ),
           SUM( VALOR_RATEIO_ASSISTENTE ),
           SUM( CUSTO_COM_AQUISICAO ),
           SUM( CUSTO_COM_PRODUTOS_TOTAL ),
           SUM( CUSTO_OPERACIONAL ),
          sum((select sum(vp.valor_parcela) from vendas_pagamento vp where vp.codigo = v.codigo and vp.anulado is null))
      FROM VENDAS_ITENS VI
 INNER JOIN VENDAS V ON V.CODIGO = VI.CODIGO
 --INNER JOIN vendas_pagamento vp ON vp.codigo = v.codigo
  --    AND vp.anulado is null

 INNER JOIN FORMAS_PAGAMENTO fp ON vi.formas_pagamento = fp.descricao

      WHERE V.CODIGO = VI.CODIGO and
            V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
            VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
            VI.CODIGO_PEDIDO = :COD_PEDIDO AND
            VI.TIPO_PEDIDO = :TIPO AND
            VI.ITEM_CANCELADO = 'Nao' AND
            VI.TIPO IS NULL
        group by 1,2

_________________
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: Qua Abr 03, 2019 3:23 pm    Assunto: Responder com Citação

A idéia era remover os 2 Joins abaixo:

Código:
 INNER JOIN vendas_pagamento vp ON vp.codigo = v.codigo
      AND vp.anulado is null
 INNER JOIN FORMAS_PAGAMENTO fp ON vp.forma_pagamento = fp.codigo


Você precisa desse join com a tabela FORMAS_PAGAMENTO? Não consegui identificar nenhum campo dessa tabela sendo utilizado na query.
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: Qua Abr 03, 2019 3:30 pm    Assunto: Responder com Citação

imex escreveu:
A idéia era remover os 2 Joins abaixo:

Código:
 INNER JOIN vendas_pagamento vp ON vp.codigo = v.codigo
      AND vp.anulado is null
 INNER JOIN FORMAS_PAGAMENTO fp ON vp.forma_pagamento = fp.codigo


Você precisa desse join com a tabela FORMAS_PAGAMENTO? Não consegui identificar nenhum campo dessa tabela sendo utilizado na query.


A sim, vou precisar sim Imex, veja
Código:
SELECT
           COALESCE(SUM( QUANTIDADE ),0) as QUANTIDADE,
           COALESCE(SUM(  PRECO_TOTAL_DESC_AJUST) - SUM( PRECO_TOTAL_DESC_AJUST * fp.desconto ) / 100,0) AS VALOR_FATURADO,
           COALESCE(SUM( VALOR_RATEIO_TITULAR ),0) as VALOR_RATEIO_TITULAR,
           COALESCE(SUM( VALOR_RATEIO_ASSISTENTE ),0) as VALOR_RATEIO_ASSISTENTE,
           COALESCE(SUM( CUSTO_COM_AQUISICAO ),0) as CUSTO_COM_AQUISICAO,
           COALESCE(SUM( CUSTO_COM_PRODUTOS_TOTAL ),0) as CUSTO_COM_PRODUTOS_TOTAL,
           COALESCE(SUM( CUSTO_OPERACIONAL ),0) as CUSTO_OPERACIONAL,
           COALESCE(SUM( (
                          SELECT SUM(vp.valor_parcela)
                            FROM vendas_pagamento vp
                           WHERE vp.codigo = v.codigo
                             AND vp.anulado IS NULL
                           )
                      ),0) AS VALOR_PARCELA
      FROM VENDAS_ITENS VI
 INNER JOIN VENDAS V ON V.CODIGO = VI.CODIGO
 INNER JOIN FORMAS_PAGAMENTO fp ON vi.formas_pagamento = fp.descricao
      WHERE V.CODIGO = VI.CODIGO and
            V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
            VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
            VI.CODIGO_PEDIDO = :COD_PEDIDO AND
            VI.TIPO_PEDIDO = :TIPO AND
            VI.ITEM_CANCELADO = 'Nao' AND
            VI.TIPO IS NULL


To fazendo somas, antes não tinha montado desta forma ainda. Desculpe
_________________
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
adriano_servitec
Colaborador
Colaborador


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

MensagemEnviada: Qua Abr 03, 2019 3:50 pm    Assunto: Responder com Citação

Acho que vou ter que mudar aqui
Código:
COALESCE(SUM(  PRECO_TOTAL_DESC_AJUST) - SUM( PRECO_TOTAL_DESC_AJUST * fp.desconto ) / 100,0) AS VALOR_FATURADO,


Por este
Código:
CASE WHEN fp.desconto > 0 then
               SUM(  PRECO_TOTAL_DESC_AJUST - PRECO_TOTAL_DESC_AJUST * fp.desconto / 100)
            ELSE
               SUM(  PRECO_TOTAL_DESC_AJUST)
            END AS VALOR_FATURADO,


Mais esta dando erro

Nova sintaxe
Código:
SELECT
           COALESCE(SUM( QUANTIDADE ),0) as QUANTIDADE,
           --COALESCE(SUM(  PRECO_TOTAL_DESC_AJUST) - SUM( PRECO_TOTAL_DESC_AJUST * fp.desconto ) / 100,0) AS VALOR_FATURADO,

           CASE WHEN fp.desconto > 0 then
               SUM(  PRECO_TOTAL_DESC_AJUST - PRECO_TOTAL_DESC_AJUST * fp.desconto / 100)
            ELSE
               SUM(  PRECO_TOTAL_DESC_AJUST)
            END AS VALOR_FATURADO,



           COALESCE(SUM( VALOR_RATEIO_TITULAR ),0) as VALOR_RATEIO_TITULAR,
           COALESCE(SUM( VALOR_RATEIO_ASSISTENTE ),0) as VALOR_RATEIO_ASSISTENTE,
           COALESCE(SUM( CUSTO_COM_AQUISICAO ),0) as CUSTO_COM_AQUISICAO,
           COALESCE(SUM( CUSTO_COM_PRODUTOS_TOTAL ),0) as CUSTO_COM_PRODUTOS_TOTAL,
           COALESCE(SUM( CUSTO_OPERACIONAL ),0) as CUSTO_OPERACIONAL,
           COALESCE(SUM( (
                          SELECT SUM(vp.valor_parcela)
                            FROM vendas_pagamento vp
                           WHERE vp.codigo = v.codigo
                             AND vp.anulado IS NULL
                           )
                      ),0) AS VALOR_PARCELA
      FROM VENDAS_ITENS VI
 INNER JOIN VENDAS V ON V.CODIGO = VI.CODIGO
 INNER JOIN FORMAS_PAGAMENTO fp ON vi.formas_pagamento = fp.descricao
      WHERE V.CODIGO = VI.CODIGO and
            V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
            VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
            VI.CODIGO_PEDIDO = :COD_PEDIDO AND
            VI.TIPO_PEDIDO = :TIPO AND
            VI.ITEM_CANCELADO = 'Nao' AND
            VI.TIPO IS NULL



Citação:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).


Acho que assim resolve
Código:
COALESCE(SUM(  PRECO_TOTAL_DESC_AJUST) - COALESCE(SUM( PRECO_TOTAL_DESC_AJUST * fp.desconto ),0) / 100,0) AS VALOR_FATURADO,

_________________
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: Qua Abr 03, 2019 4:08 pm    Assunto: Responder com Citação

Acho que você pode usar a descrição no Join se é possível garantir que essa descrição existe na tabela de formas de pagamento.

Sobre o Case, não entendi porque ele seria necessário, mas se for o caso experimente coloca-lo dentro do Sum conforme exemplo abaixo:

Código:
SUM( PRECO_TOTAL_DESC_AJUST -
     CASE WHEN fp.desconto > 0
         then PRECO_TOTAL_DESC_AJUST * fp.desconto / 100
         else 0
     end )


Espero que ajude
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: Qua Abr 03, 2019 4:30 pm    Assunto: Responder com Citação

imex escreveu:
Acho que você pode usar a descrição no Join se é possível garantir que essa descrição existe na tabela de formas de pagamento.

Sobre o Case, não entendi porque ele seria necessário, mas se for o caso experimente coloca-lo dentro do Sum conforme exemplo abaixo:

Código:
SUM( PRECO_TOTAL_DESC_AJUST -
     CASE WHEN fp.desconto > 0
         then PRECO_TOTAL_DESC_AJUST * fp.desconto / 100
         else 0
     end )


Espero que ajude
Obrigado Imex,.
_________________
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
adriano_servitec
Colaborador
Colaborador


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

MensagemEnviada: Qui Abr 04, 2019 10:07 am    Assunto: Responder com Citação

Realmente preciso seguir esta logica aqui

Código:
 SELECT vi.nome_pedido,
            --FP.descricao,
            SUM( QUANTIDADE ) as QUANTIDADE,

            SUM(  PRECO_TOTAL_DESC_AJUST) AS VALOR_ORIGINAL,
            vp.desconto_forma_pagamento AS INDICE_DESCONTO,

           -- COALESCE(SUM(  PRECO_TOTAL_DESC_AJUST) - COALESCE(SUM( PRECO_TOTAL_DESC_AJUST * fp.desconto ),0) / 100,0) AS VALOR_FATURADO,

            COALESCE(SUM(  PRECO_TOTAL_DESC_AJUST) - COALESCE(SUM( PRECO_TOTAL_DESC_AJUST * vp.desconto_forma_pagamento ),0) / 100,0) AS VALOR_FATURADO,

            SUM( VALOR_RATEIO_TITULAR ) as VALOR_RATEIO_TITULAR,
            SUM( VALOR_RATEIO_ASSISTENTE ) as VALOR_RATEIO_ASSISTENTE,
            SUM( CUSTO_COM_AQUISICAO ) as CUSTO_COM_AQUISICAO,
            SUM( CUSTO_COM_PRODUTOS_TOTAL ) as CUSTO_COM_PRODUTOS_TOTAL,
            SUM( CUSTO_OPERACIONAL ) as CUSTO_OPERACIONAL,
            SUM( (
                           select sum(vp.valor_parcela)
                             from vendas_pagamento vp

                            where vp.codigo = v.codigo
                                and vp.anulado is null
                          )
                     ) AS VALOR_PARCELA
       FROM VENDAS_ITENS VI
 INNER JOIN VENDAS V ON V.CODIGO = VI.CODIGO

--INNER JOIN FORMAS_PAGAMENTO fp ON vi.formas_pagamento = fp.descricao

     INNER JOIN vendas_pagamento vp ON vp.codigo = v.codigo
      AND vp.anulado is null

      WHERE V.CODIGO = VI.CODIGO and
            V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
            VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
            VI.CODIGO_PEDIDO in (4,14,15,18,19,20,21,23,164) and  -- = :COD_PEDIDO AND
            VI.TIPO_PEDIDO = :TIPO AND
            VI.ITEM_CANCELADO = 'Nao' AND
            VI.TIPO IS NULL
 GROUP BY 1,4, VI.CODIGO_PEDIDO
 order by VI.CODIGO_PEDIDO


Mas ai os valores não batem como mencionei acima.
Este aqui ficou falho
Código:
INNER JOIN FORMAS_PAGAMENTO fp ON vi.formas_pagamento = fp.descricao

_________________
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: Qui Abr 04, 2019 11:03 am    Assunto: Responder com Citação

Pode existir mais de um registro na tabela vendas_pagamento para uma mesma venda?
Se pode, pode ocorrer de o valor do campo desconto_forma_pagamento ser diferente entre esses registros da mesma venda?
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: Qui Abr 04, 2019 11:20 am    Assunto: Responder com Citação

imex escreveu:
Pode existir mais de um registro na tabela vendas_pagamento para uma mesma venda?
Se pode, pode ocorrer de o valor do campo desconto_forma_pagamento ser diferente entre esses registros da mesma venda?


Pode existir mais de um registro na tabela vendas_pagamento para uma mesma venda?
R: Pode sim existe varias formas de pagamento em uma unica nota

Se pode, pode ocorrer de o valor do campo desconto_forma_pagamento ser diferente entre esses registros da mesma venda?
Sim algumas formas de pagamento pode haver um indice de desconto_forma_pagamento, ja outros não, isso tudo na mesma nota fiscal.
_________________
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: Qui Abr 04, 2019 11:39 am    Assunto: Responder com Citação

adriano_servitec escreveu:
Sim algumas formas de pagamento pode haver um indice de desconto_forma_pagamento, ja outros não, isso tudo na mesma nota fiscal.


Como deve ser feito o calculo nesses casos?
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: Qui Abr 04, 2019 11:51 am    Assunto: Responder com Citação

imex escreveu:
adriano_servitec escreveu:
Sim algumas formas de pagamento pode haver um indice de desconto_forma_pagamento, ja outros não, isso tudo na mesma nota fiscal.


Como deve ser feito o calculo nesses casos?

Assim, fiz a venda nr 195252 valor da nota 1,00
Gravou na tabela vendas_pagamentos
195252-dinheiro-0,200, desconto_forma_pagamento-0,000, valor_total-0,200
195252-cartao debito-0,800, desconto_forma_pagamento-30,000, valor_total-0,560
_________________
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: Qui Abr 04, 2019 2:20 pm    Assunto: Responder com Citação

Você pode acrescentar o Alias antes do nome de cada campo utilizado na query para identificar de qual tabela eles são?
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: Qui Abr 04, 2019 2:37 pm    Assunto: Responder com Citação

imex escreveu:
Você pode acrescentar o Alias antes do nome de cada campo utilizado na query para identificar de qual tabela eles são?


Sim
Código:
    SELECT
           COALESCE(SUM( vi.quantidade ),0) as QUANTIDADE,
           COALESCE(SUM( vi.preco_total_desc_ajust) - COALESCE(SUM( vi.preco_total_desc_ajust * vp.desconto_forma_pagamento ),0) / 100,0) AS VALOR_FATURADO,
           COALESCE(SUM( vi.valor_rateio_titular ),0) as VALOR_RATEIO_TITULAR,
           COALESCE(SUM( vi.valor_rateio_assistente ),0) as VALOR_RATEIO_ASSISTENTE,
           COALESCE(SUM( vi.custo_com_aquisicao ),0) as CUSTO_COM_AQUISICAO,
           COALESCE(SUM( vi.custo_com_produtos_total ),0) as CUSTO_COM_PRODUTOS_TOTAL,
           COALESCE(SUM( vi.custo_operacional ),0) as CUSTO_OPERACIONAL,
           COALESCE(SUM( (
                          SELECT SUM(vp.valor_parcela)
                            FROM vendas_pagamento vp
                           WHERE vp.codigo = v.codigo
                             AND vp.anulado IS NULL
                           )
                      ),0) AS VALOR_PARCELA
       FROM VENDAS_ITENS VI
 INNER JOIN VENDAS V ON V.CODIGO = VI.CODIGO
 INNER JOIN vendas_pagamento vp ON vp.codigo = v.codigo
        AND vp.anulado is null
      WHERE V.CODIGO = VI.CODIGO and
            V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN AND
            VI.CODIGO_TITULAR = :COD_PROFISSIONAL AND
            VI.CODIGO_PEDIDO = :COD_PEDIDO AND
            VI.TIPO_PEDIDO = :TIPO AND
            VI.ITEM_CANCELADO = 'Nao' AND
            VI.TIPO IS NULL

_________________
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
Ir à página 1, 2  Próximo
Página 1 de 2

 
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