 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Abr 04, 2019 3:28 pm Assunto: |
|
|
Andei fazendo assim
Código: | SELECT
COALESCE(SUM( vi.quantidade ),0) as QUANTIDADE,
COALESCE(SUM( (
SELECT SUM(vp.valor_total)
FROM vendas_pagamento vp
WHERE vp.codigo = v.codigo
AND vp.anulado IS NULL
)
),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
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 |
Mas não sei se deu boa, pelo menos não duplicou. porém campos de tabelas diferentes e não conheço a regra deste software se vai dar boa, no meu exemplo deu, não sei em produção. _________________ 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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Abr 04, 2019 3:46 pm Assunto: |
|
|
adriano_servitec escreveu: | Andei fazendo assim
Código: | SELECT
COALESCE(SUM( vi.quantidade ),0) as QUANTIDADE,
COALESCE(SUM( (
SELECT SUM(vp.valor_total)
FROM vendas_pagamento vp
WHERE vp.codigo = v.codigo
AND vp.anulado IS NULL
)
),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
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 |
Mas não sei se deu boa, pelo menos não duplicou. porém campos de tabelas diferentes e não conheço a regra deste software se vai dar boa, no meu exemplo deu, não sei em produção. |
Ja descartei este select.
Não rolou não, da diferença no valor _________________ 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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Abr 04, 2019 3:49 pm Assunto: |
|
|
Experimente fazer uns testes com a query abaixo:
Código: | with CTE_VENDAS as
(
SELECT
V.CODIGO,
SUM(vp.valor_parcela) AS VALOR_PARCELA,
SUM(vp.valor_parcela * COALESCE(vp.desconto_forma_pagamento, 0)) / SUM(vp.valor_parcela) AS DESCONTO_FORMA_PAGAMENTO
FROM VENDAS V
INNER JOIN vendas_pagamento vp
ON vp.codigo = v.codigo AND
vp.anulado is null
WHERE
V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN
GROUP BY
V.CODIGO
)
SELECT
COALESCE(SUM( vi.quantidade ),0) as QUANTIDADE,
COALESCE(SUM( vi.preco_total_desc_ajust - (vi.preco_total_desc_ajust * v.desconto_forma_pagamento / 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( v.valor_parcela ),0) AS VALOR_PARCELA
FROM CTE_VENDAS AS V
INNER JOIN VENDAS_ITENS VI ON VI.CODIGO = V.CODIGO
WHERE 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 |
Na CTE deverá ser obtida a média de desconto da venda conforme o pagamento, para depois somar os itens aplicando o desconto.
Espero que ajude |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Abr 04, 2019 5:07 pm Assunto: |
|
|
adriano_servitec escreveu: | Uma duvida neste caso aqui este valor não seria o valor_sem_desconto_ajuste no lugar do valor_parcela?
No final o meu pagamento ficou de 60,00 paguei 46,00 no caixa
Mais assim me mostra nesta coluna o valor 49,304, de onde pegou isso?
Imagem da tabela vendas_pagamento e os campos
 |
Alias este primeiro campo nem sei o que é, tudo deu 20,00
Mais na real o valor do produto é 60,00 com as formas de pagamento e seus indices no final paguei 46,00 _________________ 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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Abr 04, 2019 5:19 pm Assunto: |
|
|
Fiz mais uma venda
Forma de pagamentos
6-cartão débito 50% desconto
4-cartão crédito 20% desconto
1-dinheiro - 0% desconto
Valor do produto 6,00
venda
10 X 6,00 = 60,00
Pagamento da venda
6-cartão débito 10,00
Meu finaliza venda me diz que falta 40,00
4-cartão crédito 10,00
Meu finaliza venda me diz que falta 27,50
1-dinheiro - 27,50
Total pago desta venda foi 47,50
No select diz que ficou 51,158 _________________ 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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Abr 04, 2019 5:28 pm Assunto: |
|
|
Não sei, mais parece ser assim Imex
Código: | with CTE_VENDAS as
(
SELECT
V.CODIGO,
SUM(vp.valor_sem_desconto_ajuste) AS VALOR_PARCELA,
SUM(vp.valor_sem_desconto_ajuste * COALESCE(vp.desconto_forma_pagamento, 0)) / SUM(vp.valor_sem_desconto_ajuste) AS DESCONTO_FORMA_PAGAMENTO
FROM VENDAS V
INNER JOIN vendas_pagamento vp
ON vp.codigo = v.codigo AND
vp.anulado is null
WHERE
V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN
GROUP BY
V.CODIGO
)
|
Não tenho certeza, vou fazer testes ainda. _________________ 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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Abr 05, 2019 9:22 am Assunto: |
|
|
Dei uma alterada, acho que assim é o certo que percebi analisando melhor
Código: | with CTE_VENDAS as
(
SELECT
V.CODIGO,
SUM(vp.valor_parcela) AS VALOR_PARCELA,
SUM(vp.valor_sem_desconto_ajuste * COALESCE(vp.desconto_forma_pagamento, 0)) / SUM(vp.valor_sem_desconto_ajuste) AS DESCONTO_FORMA_PAGAMENTO
FROM VENDAS V
INNER JOIN vendas_pagamento vp
ON vp.codigo = v.codigo AND
vp.anulado is null
WHERE
V.DATA_HORA BETWEEN :DATA_INI AND :DATA_FIN
GROUP BY
V.CODIGO
)
|
Muito obrigado Imex. Acho que assim resolve. _________________ 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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|