Select com três tabelas relacionadas...
Tô precisando fazer um select com envolvendo três tabelas. Pra começar vou colocar as estruturas das tabelas que são PROJETO, MATERIAL E LANCAMENTO_PROJETO.
Tabela PROJETO:
Tabela MATERIAL:
Tabela LANCAMENTO_PROJETO:
Tenho que fazer o select da tabela LANCAMENTO_PROJETO relacionando com os campos descricao un e preco_unitario da tabela MATERIAL.
Tabela PROJETO:
/******************************************************************************/ /**** Tables ****/ /******************************************************************************/ CREATE TABLE PROJETO ( COD_PROJETO VARCHAR(6) NOT NULL, NOME_PROJETO VARCHAR(70), DATA_REGISTRO DATE, GRUPO1 VARCHAR(4), DESCRICAO1 VARCHAR(30), GRUPO2 VARCHAR(4), DESCRICAO2 VARCHAR(30), GRUPO3 VARCHAR(4), DESCRICAO3 VARCHAR(30), GRUPO4 VARCHAR(4), DESCRICAO4 VARCHAR(30), GRUPO5 VARCHAR(4), DESCRICAO5 VARCHAR(30), GRUPO6 VARCHAR(4), DESCRICAO6 VARCHAR(30), GRUPO7 VARCHAR(4), DESCRICAO7 VARCHAR(30), GRUPO8 VARCHAR(4), DESCRICAO8 VARCHAR(30), GRUPO9 VARCHAR(4), DESCRICAO9 VARCHAR(30), GRUPO10 VARCHAR(4), DESCRICAO10 VARCHAR(30) ); /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ ALTER TABLE PROJETO ADD CONSTRAINT PK_PROJETO PRIMARY KEY (COD_PROJETO); /******************************************************************************/ /**** Privileges ****/ /******************************************************************************/
Tabela MATERIAL:
/******************************************************************************/ /**** Tables ****/ /******************************************************************************/ CREATE TABLE MATERIAL ( COD_ORDENADO VARCHAR(20) NOT NULL, DESCRICAO VARCHAR(70) COLLATE PT_BR, UN VARCHAR(2), PRECO_UNITARIO NUMERIC(15,2) ); /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ ALTER TABLE MATERIAL ADD CONSTRAINT PK_MATERIAL PRIMARY KEY (COD_ORDENADO); /******************************************************************************/ /**** Privileges ****/ /******************************************************************************/
Tabela LANCAMENTO_PROJETO:
/******************************************************************************/ /**** Tables ****/ /******************************************************************************/ CREATE GENERATOR ID_LANCAMENTO_PROJETO; CREATE TABLE LANCAMENTO_PROJETO ( ID_LANCAMENTO_PROJETO INTEGER NOT NULL, COD_PROJETO VARCHAR(6) NOT NULL, GRUPO VARCHAR(10), COD_ORDENADO_M VARCHAR(20) NOT NULL, QUANTIDADE_M VARCHAR(20), TOTAL NUMERIC(15,2) ); /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ ALTER TABLE LANCAMENTO_PROJETO ADD CONSTRAINT PK_LANCAMENTO_PROJETO PRIMARY KEY (ID_LANCAMENTO_PROJETO); /******************************************************************************/ /**** Foreign Keys ****/ /******************************************************************************/ ALTER TABLE LANCAMENTO_PROJETO ADD CONSTRAINT FK_LANCAMENTO_PROJETO_1 FOREIGN KEY (COD_PROJETO) REFERENCES PROJETO (COD_PROJETO) ON DELETE CASCADE; ALTER TABLE LANCAMENTO_PROJETO ADD CONSTRAINT FK_LANCAMENTO_PROJETO_2 FOREIGN KEY (COD_ORDENADO_M) REFERENCES MATERIAL (COD_ORDENADO); /******************************************************************************/ /**** Triggers ****/ /******************************************************************************/ SET TERM ^ ; /******************************************************************************/ /**** Triggers for tables ****/ /******************************************************************************/ /* Trigger: LANCAMENTO_PROJETO_BI */ CREATE TRIGGER LANCAMENTO_PROJETO_BI FOR LANCAMENTO_PROJETO ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ID_LANCAMENTO_PROJETO IS NULL) THEN NEW.ID_LANCAMENTO_PROJETO = GEN_ID(ID_LANCAMENTO_PROJETO,1); END ^ SET TERM ; ^ /******************************************************************************/ /**** Privileges ****/ /******************************************************************************/
Tenho que fazer o select da tabela LANCAMENTO_PROJETO relacionando com os campos descricao un e preco_unitario da tabela MATERIAL.
Jpauloss
Curtidas 0
Respostas
Roneto
02/10/2007
tenta isso:
select
LANCAMENTO_PROJETO.*,
MATERIAL.DESCRICAO,
MATERIAL.UN,
MATERIAL.PRECO_UNITARIO
from
LANCAMENTO_PROJETO inner join MATERIAL on
LANCAMENTO_PROJETO.COD_ORDENADO_M = MATERIAL.COD_ORDENADO
select
LANCAMENTO_PROJETO.*,
MATERIAL.DESCRICAO,
MATERIAL.UN,
MATERIAL.PRECO_UNITARIO
from
LANCAMENTO_PROJETO inner join MATERIAL on
LANCAMENTO_PROJETO.COD_ORDENADO_M = MATERIAL.COD_ORDENADO
GOSTEI 0