João Almeida Paulo 0 Posted June 19, 2019 Report Share Posted June 19, 2019 (edited) 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 June 19, 2019 by João Almeida Paulo Link to post Share on other sites
Rechousa 70 Posted June 19, 2019 Report Share Posted June 19, 2019 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 Link to post Share on other sites
João Almeida Paulo 0 Posted June 19, 2019 Author Report Share Posted June 19, 2019 (edited) 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 June 19, 2019 by João Almeida Paulo Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now