Jump to content
kombypetras

Elaboração de uma view

Recommended Posts

kombypetras

Boas Pessoal.

Estou a elaborar uma aplicação e tenho a base de dados com o seguinte desenho de tabelas, faltam algumas mas para esta view são basicamente estas tabela.

semttuloas.jpg

a tabela que eu quero construir é a seguinte

                                                                                                                                                      Pagamento Fornecedor

IDProc  |  Designacao PRocesso  |  Localidade Processo  |  Especialidade  |  precoseco  |  valorpago    |    Valor falta (precoseco-valorpago)

A ideia é obter em cada processo o valor que já foi pago aos fornecedores em cada especialidade

Já tenho o seguinte código só que nao estou a conseguir relacionar o valor que cada fornecedor já recebeu em cada uma das especialidades.

SELECT P.IDProc AS 'Nº Processo', P.designacao AS Designação, E.designacao AS Especialidade, A.precoseco AS 'Preço Seco' 
FROM Processo P, Adjudicacao A, Especialidade E "
WHERE A.IDFor = @idf AND A.IDEsp = E.IDEsp AND P.IDProc = A.IDProc

Agradeço desde já uma ajudinha com alguma urgência, sff

Obrigado

Share this post


Link to post
Share on other sites
kombypetras

Então pessoal ninguém me consegue dar uma ajudinha vá lá pff.

Estou farto de dar voltas ao meu sql e não o consigo por a funcionar

Share this post


Link to post
Share on other sites
KTachyon

Deverá ser qualquer coisa como:

SELECT nome, designacao, SUM(valorpago)
FROM Fornecedor, PagamentoFornecedor, Especialidade
WHERE Fornecedor.IDFor = PagamentoFornecedor.IDFor AND PagamentoFornecedor.IDEsp = Especialidade.IDEsp
GROUP BY nome, designacao


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
kombypetras

Boas KTachyon.

Não percebi bem a tua ideia, mas com a tua dica do Group By e mais umas pesquisas elaborei esta query

..
Select A.IDProc as 'Nº Processo', P.designacao as Processo, P.freguesia as 'Freguesia',
E.designacao as 'Especialidade', A.precoseco as 'Preço Seco', SUM(PF.valorpago) AS 'Valor Pago' 
From Processo P, Especialidade E, Adjudicacao A, PagamentoFornecedor PF 
Where A.IDProc = P.IDProc AND A.IDFor = @idf AND E.IDEsp = A.IDEsp 
GROUP BY A.IDProc,E.designacao,P.designacao,P.freguesia,A.precoseco

So que com este meu código acontece me o seguinte vai aparecer o valor total em todos os processos e nao o valor total por processo.

Ou seja se já foi pago

processo 1 especialidade 1 - 500

processo 2 especialidade 2 - 600

processo 1 especialidade 3 - 300

processo 1 especialidade 1 - 300

o k eu quero e que apareça

processo 1 especialidade 1 - 800

processo 2 especialidade 2 - 600

processo 1 especialidade 3 - 300

em vez de

processo 1 especialidade 1 - 2200

processo 2 especialidade 2 - 2200

processo 1 especialidade 3 - 2200

processo 1 especialidade 1 - 2200

Não sei se me fiz entender mas agradeço desde já kker ajuda

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.