Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kombypetras

Construção de View

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dia KombyPetras,

 

talvez eu possa lhe ajudar....

mas tem como você postar o create destas tabelas ??

pois ae fica mais fácil...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas brenocristovao.

 

Desde já agradeço a sua atenção.

 

Os Create das tabelas são os seguinte.

 



----  Tabele Especialidade ----
if not exists (select * from dbo.sysobjects 
	where id = object_id(N'[dbo].[Especialidade]') )
CREATE TABLE Especialidade (
	IDEsp int NOT NULL
		Check(IDEsp > 0),
	designacao nvarchar(200) NOT NULL,

CONSTRAINT 	PK_Especialidade Primary Key (IDEsp),
);

----  Tabele Processo ----
if not exists (select * from dbo.sysobjects 
              where id = object_id(N'[dbo].[Processo]') )
CREATE TABLE Processo (
	IDProc nvarchar(20) UNIQUE NOT NULL,
	designacao nvarchar(200) NOT NULL,
	Morada nvarchar(200) NOT NULL,
	cod_postal int NOT NULL
		Check (cod_postal >= 1000 AND cod_postal <= 9999),
	cod_rua int NOT NULL
		Check (cod_rua >= 1 AND cod_rua <= 999),
	freguesia nvarchar(200) NOT NULL,
	anoadj int NOT NULL,
		CHECK (anoadj > 1000 OR anoadj < 9999),
	concelho nvarchar(200),
	registo nvarchar(200),
	matriz nvarchar(200),
	nproccamara nvarchar(200),
	estado nvarchar(50) NOT NULL
		CHECK (estado = 'Estudo' OR estado = 'Valido'),
	IDCliente int NOT NULL
		Check (IDCliente > 0),

CONSTRAINT PK_Processo PRIMARY KEY (IDProc),
CONSTRAINT FK_Cliente FOREIGN KEY (IDCliente) REFERENCES Cliente(IDCliente)	
);


----  Tabele Fornecedor ----
if not exists (select * from dbo.sysobjects 
              where id = object_id(N'[dbo].[Fornecedor]') )	
   CREATE TABLE Fornecedor (
	IDFor int NOT NULL
		check (IDFor > 0),
	nome nvarchar(200) NOT NULL,
	morada nvarchar(200) NOT NULL,
	cod_postal int NOT NULL
		Check (cod_postal >= 1000 AND cod_postal <= 9999),
	cod_rua int NOT NULL
		Check (cod_rua >= 1 AND cod_rua <= 999),
	localidade nvarchar(100) NOT NULL,
	telefone bigint NOT NULL,
		Check (telefone >= 100000000),
	email nvarchar(100) NOT NULL,

CONSTRAINT PK_IDFor PRIMARY KEY (IDFor),
);

	----  Tabele Adjudicacao ----
if not exists (select * from dbo.sysobjects 
              where id = object_id(N'[dbo].[Adjudicacao]') )
CREATE TABLE Adjudicacao (
	IDProc nvarchar(20) NOT NULL,
	IDFor int NOT NULL
		check (IDFor > 0),
	IDEsp int NOT NULL
		check (IDEsp > 0),
	precoseco decimal(20,2) NOT NULL,
	lucro decimal(20,2) NOT NULL,
CONSTRAINT PK_Ajudicacao PRIMARY KEY (IDProc,IDFor,IDEsp),
CONSTRAINT FK_Proc FOREIGN KEY (IDProc) REFERENCES Processo(IDProc),
CONSTRAINT FK_For FOREIGN KEY (IDFor) REFERENCES Fornecedor(IDFor),
CONSTRAINT FK_Esp FOREIGN KEY (IDEsp) REFERENCES Especialidade(IDEsp),
);


if not exists (select * from dbo.sysobjects 
              where id = object_id(N'[dbo].[PagamentoFornecedor]') )
CREATE TABLE PagamentoFornecedor(
	IDPag int NOT NULL
		check (IDPag > 0),
	valorpago decimal(20,2) NOT NULL,
	IDProc nvarchar(20) NOT NULL,
	IDFor int NOT NULL
		check(IDFor > 0),
	IDEsp int NOT NULL
		check(IDEsp > 0),

CONSTRAINT PK_Pag3 PRIMARY KEY (IDPag),
CONSTRAINT FK_Espe3 FOREIGN KEY (IDEsp) REFERENCES Especialidade(IDEsp),
CONSTRAINT FK_Proc5 FOREIGN KEY (IDProc) REFERENCES Processo(IDProc),
CONSTRAINT FK_Forn6 FOREIGN KEY (IDFor) REFERENCES Fornecedor(IDFor),
);

Compartilhar este post


Link para o post
Compartilhar em outros sites

kombypetras, fazendo joins pelas Pks não esta rolando?

Não consegui ver a imagem postada e para mim a estrutura veio toda quebrada, tem como postar novamente. Deve ser algum bloqueio na minha rede.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.