Na tabela seguinte faço o cadastro de todas as escolas municipais do município aonde moro:
--------------------------------------------------------------------------------------------------------------------------
CREATE TABLE "ESCOLAORGAO"
(
"ESC_CODIGO" INTEGER NOT NULL,
"ESC_NOME" VARCHAR(50) NOT NULL,
"ESC_CODINEP" VARCHAR(8),
"ESC_LOGRADOURO" INTEGER NOT NULL,
"ESC_ENDERECO" VARCHAR(60),
"ESC_NUMERO" VARCHAR(10),
"ESC_BAIRRO" VARCHAR(40),
"ESC_CIDADE" INTEGER NOT NULL,
"ESC_ESTADO" INTEGER NOT NULL,
"ESC_TELEFONE" VARCHAR(15),
"ESC_EMAIL" VARCHAR(40),
"ESC_CEP" VARCHAR(9),
"ESC_ALUNOS" VARCHAR(5),
"ESC_LOCALIZACAO" CHAR(1),
"ESC_DATACADASTRO" TIMESTAMP,
"ESC_OBSERVACOES" VARCHAR(150),
"ESC_CNPJ" VARCHAR(18),
"ESC_LOGO" VARCHAR(50),
"ESC_CADASTROESCOLAR" VARCHAR(10),
"ESC_PORTARIA" VARCHAR(10),
"ESC_DATAPORTARIA" TIMESTAMP,
"ESC_COMPLEMENTO" VARCHAR(20),
"ESC_TIPOINSTITUICAO" CHAR(1),
CONSTRAINT "ESCOLAORGAO_PK" PRIMARY KEY ("ESC_CODIGO")
);
CREATE INDEX "IND_COD_ESCOLAORGAO" ON "ESCOLAORGAO"("ESC_CODIGO");
CREATE INDEX "IND_NOME_ESCOLAORGAO" ON "ESCOLAORGAO"("ESC_NOME");
ALTER TABLE "ESCOLAORGAO" ADD CONSTRAINT "ESCCID_FK" FOREIGN KEY ("ESC_CIDADE") REFERENCES "CIDADES" ("CID_CODIGO");
ALTER TABLE "ESCOLAORGAO" ADD CONSTRAINT "ESCESTADO_FK" FOREIGN KEY ("ESC_ESTADO") REFERENCES "ESTADOS" ("EST_CODIGO");
ALTER TABLE "ESCOLAORGAO" ADD CONSTRAINT "ESLOG_FK" FOREIGN KEY ("ESC_LOGRADOURO") REFERENCES "LOGRADOUROS" ("LOG_CODIGO");
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Como os DIRETORES já são cadastrados na tabela FUNCIONÁRIOS, então eu pretendo criar um CAMPO CALCULADO direto na tabela ESCOLAS para EXIBIR o nome do(a) Diretor(a). Então usei o seguinte código SQL:
alter table escolaOrgao
add esc_diretor COMPUTED BY ((
select fun_nome from funcionarios
join cargoFuncao on (fun_funcao = car_codigo)
where car_nome = 'DIRETOR(A)'));
Só que dá ERRO quando vou abrir a tabela ESCOLAS pois o código SQL acima lista o nome de todos os diretores de todas as escolas e não de uma escola específica.
Desse modo, como eu posso incrementar o código SQL acima para para que ele liste apenas o nome do diretor cadastrado para a escola na tabela funcionários?
Parte do código da tabela funcionários:
CREATE TABLE "FUNCIONARIOS"
(
"FUN_CODIGO" INTEGER NOT NULL,
"FUN_NOME" VARCHAR(60) NOT NULL,
"FUN_VINCULOEMPREGATICIO" INTEGER NOT NULL,
"FUN_CARGO" INTEGER NOT NULL,
"FUN_FUNCAO" INTEGER NOT NULL,
"FUN_DATAADMISSAO" TIMESTAMP,
"FUN_ESCOLAORGAO" INTEGER NOT NULL,
.
.
.
Ficarei muito grato por quem puder me ajudar.
Desde já um abraço a todos.