Como fazer esta View?????
Pessoal... tenho a seguinte view :
mas está faltando um campo... o Nome do Solicitante, pois como está só traz o código do solicitante... o problema é que o nome do solicitante provém da mesma tabela que o colaborador CA0500, na qual o select já traz o campo C_NOME_COLABORADOR. Enfim, preciso do nome do colaborador que é responsável pela manutenção e o nome do solicitante, que é o mesmo campo na tabela.
preciso que fique mais ou menos assim :
será que conseguí me explicar???
alguém sabe como fazer este select numa VIEW ????
agradeço a todos antecipadamente..
CREATE VIEW SELECT_MANUTENCAO_CORRETIVA(
C_COD_INSUMO,
C_DATA_EXECUCAO,
C_TIPO_MANUT,
C_COD_GRUPO_PAT,
C_COD_SUB_GRUPO_PAT,
C_COD_COLABORADOR,
C_USUARIO,
C_ENDERECO_MANUT,
C_GRANDEZA_CONSUMO_MEDIO,
C_QTD_CONSUMO_MEDIO,
C_QTD_MANUT,
C_GRANDEZA_MANUT,
C_DATA_PREVISAO,
C_COD_OS,
C_COD_CONJUNTO,
C_COD_REFERENCIA,
C_SOLICITANTE,
C_DESC_SOLICITACAO,
C_DESC_INSUMO,
C_DESC_GRUPO_PAT,
C_DESC_SUB_GRUPO_PAT,
C_DESC_CONJUNTO,
C_NOME_COLABORADOR)
AS
select CM0100.C_COD_INSUMO, CM0100.C_DATA_EXECUCAO, CM0100.C_TIPO_MANUT,
CM0100.C_COD_GRUPO_PAT, CM0100.C_COD_SUB_GRUPO_PAT, CM0100.C_COD_COLABORADOR,
CM0100.C_USUARIO, CM0100.C_ENDERECO_MANUT, CM0100.C_GRANDEZA_CONSUMO_MEDIO,
CM0100.C_QTD_CONSUMO_MEDIO, CM0100.C_QTD_MANUT, CM0100.C_GRANDEZA_MANUT,
CM0100.C_DATA_PREVISAO, CM0100.C_COD_OS, CM0100.C_COD_CONJUNTO,
CM0100.C_COD_REFERENCIA, CM0100.C_SOLICITANTE, CM0100.C_DESC_SOLICITACAO,
IN0100.C_DESC_INSUMO, GP0100.C_DESC_GRUPO_PAT, GP0200.C_DESC_SUB_GRUPO_PAT,
GP0300.C_DESC_CONJUNTO, CA0500.C_NOME_COLABORADOR
from CM0100, IN0100, GP0100, GP0200, GP0300, CA0500
where CM0100.C_DATA_EXECUCAO IS NULL and CM0100.C_TIPO_MANUT = ´C´ and
CM0100.C_COD_INSUMO = IN0100.C_COD_INSUMO and CM0100.C_COD_GRUPO_PAT =
GP0100.C_COD_GRUPO_PAT and CM0100.C_COD_SUB_GRUPO_PAT =
GP0200.C_COD_SUB_GRUPO_PAT and GP0100.C_COD_GRUPO_PAT =
GP0200.C_COD_GRUPO_PAT and CM0100.C_COD_GRUPO_PAT =
GP0200.C_COD_GRUPO_PAT and CM0100.C_COD_CONJUNTO = GP0300.C_COD_CONJUNTO and
GP0100.C_COD_GRUPO_PAT = GP0300.C_COD_GRUPO_PAT and
GP0200.C_COD_SUB_GRUPO_PAT = GP0300.C_COD_SUB_GRUPO_PAT and
CM0100.C_COD_COLABORADOR = CA0500.C_COD_COLABORADOR
;
mas está faltando um campo... o Nome do Solicitante, pois como está só traz o código do solicitante... o problema é que o nome do solicitante provém da mesma tabela que o colaborador CA0500, na qual o select já traz o campo C_NOME_COLABORADOR. Enfim, preciso do nome do colaborador que é responsável pela manutenção e o nome do solicitante, que é o mesmo campo na tabela.
preciso que fique mais ou menos assim :
CREATE VIEW SELECT_MANUTENCAO_CORRETIVA(
C_COD_INSUMO,
C_DATA_EXECUCAO,
C_TIPO_MANUT,
C_COD_GRUPO_PAT,
C_COD_SUB_GRUPO_PAT,
C_COD_COLABORADOR,
C_USUARIO,
C_ENDERECO_MANUT,
C_GRANDEZA_CONSUMO_MEDIO,
C_QTD_CONSUMO_MEDIO,
C_QTD_MANUT,
C_GRANDEZA_MANUT,
C_DATA_PREVISAO,
C_COD_OS,
C_COD_CONJUNTO,
C_COD_REFERENCIA,
C_SOLICITANTE,
C_DESC_SOLICITACAO,
C_DESC_INSUMO,
C_DESC_GRUPO_PAT,
C_DESC_SUB_GRUPO_PAT,
C_DESC_CONJUNTO,
C_NOME_COLABORADOR,
C_NOME_SOLICITANTE)
AS
select CM0100.C_COD_INSUMO, CM0100.C_DATA_EXECUCAO, CM0100.C_TIPO_MANUT,
CM0100.C_COD_GRUPO_PAT, CM0100.C_COD_SUB_GRUPO_PAT, CM0100.C_COD_COLABORADOR,
CM0100.C_USUARIO, CM0100.C_ENDERECO_MANUT, CM0100.C_GRANDEZA_CONSUMO_MEDIO,
CM0100.C_QTD_CONSUMO_MEDIO, CM0100.C_QTD_MANUT, CM0100.C_GRANDEZA_MANUT,
CM0100.C_DATA_PREVISAO, CM0100.C_COD_OS, CM0100.C_COD_CONJUNTO,
CM0100.C_COD_REFERENCIA, CM0100.C_SOLICITANTE, CM0100.C_DESC_SOLICITACAO,
IN0100.C_DESC_INSUMO, GP0100.C_DESC_GRUPO_PAT, GP0200.C_DESC_SUB_GRUPO_PAT,
GP0300.C_DESC_CONJUNTO, CA0500.C_NOME_COLABORADOR, CA0500.C_NOME_COLABORADOR as
C_NOME_SOLICITANTE
from CM0100, IN0100, GP0100, GP0200, GP0300, CA0500
where CM0100.C_DATA_EXECUCAO IS NULL and CM0100.C_TIPO_MANUT = ´C´ and
CM0100.C_COD_INSUMO = IN0100.C_COD_INSUMO and CM0100.C_COD_GRUPO_PAT =
GP0100.C_COD_GRUPO_PAT and CM0100.C_COD_SUB_GRUPO_PAT =
GP0200.C_COD_SUB_GRUPO_PAT and GP0100.C_COD_GRUPO_PAT =
GP0200.C_COD_GRUPO_PAT and CM0100.C_COD_GRUPO_PAT =
GP0200.C_COD_GRUPO_PAT and CM0100.C_COD_CONJUNTO = GP0300.C_COD_CONJUNTO and
GP0100.C_COD_GRUPO_PAT = GP0300.C_COD_GRUPO_PAT and
GP0200.C_COD_SUB_GRUPO_PAT = GP0300.C_COD_SUB_GRUPO_PAT and
CM0100.C_COD_COLABORADOR = CA0500.C_COD_COLABORADOR and
C_NOME_SOLICITANTE = CA0500.C_COD_COLABORADOR
;
será que conseguí me explicar???
alguém sabe como fazer este select numa VIEW ????
agradeço a todos antecipadamente..
Cabelo
Curtidas 0
Respostas
Sremulador
13/07/2006
você tera que fazer duas rerefencia a tabela distintas
CM0100.C_COD_COLABORADOR = 2REFER.C_COD_COLABORADOR and
C_NOME_SOLICITANTE = 1REFER.C_COD_COLABORADOR
CM0100.C_COD_COLABORADOR = 2REFER.C_COD_COLABORADOR and
C_NOME_SOLICITANTE = 1REFER.C_COD_COLABORADOR
GOSTEI 0
Cabelo
13/07/2006
Mas o problema é que as duas refer~encias são a mesma tabela....
Ficaria assim então ????
mas aí ele seleciona os dados a errados selecionará, somente os registros em que os colaboradores, forem os mesmos tanto para a manutenção(executante responsável) e tanto para o solicitante... e na maioria das vezes, para não dizer em todas as vezes, o solicitante é diferente do responsável...
Ficaria assim então ????
CM0100.C_COD_COLABORADOR = CA0500.C_COD_COLABORADOR and
C_SOLICITANTE = CA0500.C_COD_COLABORADOR
mas aí ele seleciona os dados a errados selecionará, somente os registros em que os colaboradores, forem os mesmos tanto para a manutenção(executante responsável) e tanto para o solicitante... e na maioria das vezes, para não dizer em todas as vezes, o solicitante é diferente do responsável...
GOSTEI 0