Jump to content
João Almeida Paulo

Utilização da função sum

Recommended Posts

João Almeida Paulo

Bom dia,

Este é o meu 1º tópico, peço desculpa por alguma falha.

Estou a começar a tentar "programar", e, estou a tentar via SQL Server criar uma listagem que me permita saber valores totais iliquidos (Base de incidência do IVA) das vendas que efectuei por cliente.

Esta é a query:

SELECT
cl.nome,
sum(ft.etotal-ft.ettiva)
from ft (nolock)
INNER JOIN cl ON (ft.no=cl.no And cl.estab=0)
INNER JOIN fi ON (fi.ftstamp=ft.ftstamp)
GROUP BY cl.nome

O que não estou a conseguir fazer (não sei fazer), é, retirar o valor das vendas de um produto (o produto XXX) do sum que estou a fazer sum(ft.etotal-ft.ettiva).

Todas as faturas onde nas suas linhas estivesse presente o artigo xxx, o valor desse artigo não deveria ser incluido na análise.

Espero ter conseguido explicar minimamente o que pretendo.

Obrigado pela ajuda.

Edited by João Almeida Paulo

Share this post


Link to post
Share on other sites
Rechousa

Viva João,

Bem vindo ao fórum.

Sem conhecer a estrutura da tua base de dados, diria que esta seria uma possibilidade de conseguires obter a informação de que precisas (somar as vendas por cliente para as faturas que não têm nenhuma linha com o produto XXX:

SELECT
	cl.nome,
	sum(ft.etotal-ft.ettiva)
from ft (nolock)
INNER JOIN cl ON (ft.no=cl.no And cl.estab=0)
INNER JOIN fi ON (fi.ftstamp=ft.ftstamp)
WHERE ft.ftstamp NOT IN (SELECT ftstamp FROM fi WHERE ref = 'XXX')
GROUP BY cl.nome;

Espero ter ajudado,

Pedro Martins

 


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
João Almeida Paulo
49 minutos atrás, Rechousa disse:

Viva João,

Bem vindo ao fórum.

Sem conhecer a estrutura da tua base de dados, diria que esta seria uma possibilidade de conseguires obter a informação de que precisas (somar as vendas por cliente para as faturas que não têm nenhuma linha com o produto XXX:


SELECT
	cl.nome,
	sum(ft.etotal-ft.ettiva)
from ft (nolock)
INNER JOIN cl ON (ft.no=cl.no And cl.estab=0)
INNER JOIN fi ON (fi.ftstamp=ft.ftstamp)
WHERE ft.ftstamp NOT IN (SELECT ftstamp FROM fi WHERE ref = 'XXX')
GROUP BY cl.nome;

Espero ter ajudado,

Pedro Martins

 

Olá, Pedro.

Antes demais, Obrigado pela ajuda. Mas ainda não consegui... :)

Com a tua query, o que ele está a fazer é a excluir todas as faturas onde o artigo XXX está presente. O que eu gostaria de conseguir era de deduzir o valor de venda do artigo XXX ao valor iliquido do documento, ou seja deduzir apenas o valor das linhas referentes ao artigo XXX.

Ou seja:

Tenho uma fatura com 2 linhas:

uma do artigo XXX com preço de venda de 1500

outra com o artigo CCC com preço de venda de 861€

Somando estas duas linhas fico com o valor de Base de incidência de 2361€

O pretendido, era, que na listagem, a fatura não é excluida por ter o artigo XXX, mas sim o seu valor (os 1500€),  na análise, a fatura aparecia, mas apenas com o valor total de base de incidência referente ao(s) outro(s) artigo(s) (861€).

Obrigado de novo.

Edited by João Almeida Paulo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.