Campo calculado - Oracle 9
Pessoal,
Consigo fazer o seguinte através do Oracle 9. Alguém me ajude????
Existem as tabelas:
FUNCIONARIO (COD_FUNC(PK), NOME, CARGO, COD_TIPO(FK))
TIPO_FUNCIONARIO (COD_TIPO(PK), DESCRICAO, VALOR_DIARIA)
VISITA (COD_VISITA(PK), COD_FUNC(FK), ...)
DIARIA (COD_DIARIA(PK), COD_VISITA(PK), QUANT_DIARIA, PERCENTUAL, VALOR_TOTAL)
Onde PK = chave primária
FK = chave estrangeira
Quero definir na tabela DIARIA que o campo VALOR_TOTAL é calculado de acordo com o preenchimento de outros campos, da seguinte forma:
VALOR_TOTAL = VALOR_DIARIA * PERCENTUAL / 100
Sendo que VALOR_DIARIA vem da tabela TIPO_FUNCIONARIO. Para buscar esse valor existem os relacionamentos entre as tabelas
TIPO-FUNCIONARIO - FUNCIONARIO -> (PELO COD_TIPO)
FUNCIONARIO - VISITA -> (PELO COD_FUNC)
VISITA - DIARIA -> (PELO COD_VISITA)
Para ter o valor_diaria pelo sql, acho que seria assim:
SELECT T.VALOR_DIARIA
FROM TIPO_FUNCIONARIO T, VISITA V, FUNCIONARIO F, DIARIA D
WHERE D.COD_VISITA = V.COD_VISITA AND
V.COD_FUNC = F.COD_FUNC AND
F.COD_TIPO = T.COD_TIPO
Mas como fazer isso ou para colocar o valor no campo ou para já definir na tabela?
Existe outra forma mais simples de se fazer isso?
[b:8d6ae850b8][color=red:8d6ae850b8]Título editado pelo Moderador (AZ)[/color:8d6ae850b8][/b:8d6ae850b8]
Consigo fazer o seguinte através do Oracle 9. Alguém me ajude????
Existem as tabelas:
FUNCIONARIO (COD_FUNC(PK), NOME, CARGO, COD_TIPO(FK))
TIPO_FUNCIONARIO (COD_TIPO(PK), DESCRICAO, VALOR_DIARIA)
VISITA (COD_VISITA(PK), COD_FUNC(FK), ...)
DIARIA (COD_DIARIA(PK), COD_VISITA(PK), QUANT_DIARIA, PERCENTUAL, VALOR_TOTAL)
Onde PK = chave primária
FK = chave estrangeira
Quero definir na tabela DIARIA que o campo VALOR_TOTAL é calculado de acordo com o preenchimento de outros campos, da seguinte forma:
VALOR_TOTAL = VALOR_DIARIA * PERCENTUAL / 100
Sendo que VALOR_DIARIA vem da tabela TIPO_FUNCIONARIO. Para buscar esse valor existem os relacionamentos entre as tabelas
TIPO-FUNCIONARIO - FUNCIONARIO -> (PELO COD_TIPO)
FUNCIONARIO - VISITA -> (PELO COD_FUNC)
VISITA - DIARIA -> (PELO COD_VISITA)
Para ter o valor_diaria pelo sql, acho que seria assim:
SELECT T.VALOR_DIARIA
FROM TIPO_FUNCIONARIO T, VISITA V, FUNCIONARIO F, DIARIA D
WHERE D.COD_VISITA = V.COD_VISITA AND
V.COD_FUNC = F.COD_FUNC AND
F.COD_TIPO = T.COD_TIPO
Mas como fazer isso ou para colocar o valor no campo ou para já definir na tabela?
Existe outra forma mais simples de se fazer isso?
[b:8d6ae850b8][color=red:8d6ae850b8]Título editado pelo Moderador (AZ)[/color:8d6ae850b8][/b:8d6ae850b8]
Barbara.michele
Curtidas 0
Respostas
Rômulo Barros
07/10/2004
Vc não precisa, necessariamente, ter o campo [b:df14eaab4d]VALOR_TOTAL[/b:df14eaab4d] na tabela [b:df14eaab4d]DIARIA[/b:df14eaab4d]. Para calcular e exibir este campo, segue:
[color=red:df14eaab4d][b:df14eaab4d]=======================================[/b:df14eaab4d][/color:df14eaab4d]
[color=red:df14eaab4d][b:df14eaab4d]=======================================[/b:df14eaab4d][/color:df14eaab4d]
:wink: :wink: :wink: :wink:
[color=red:df14eaab4d][b:df14eaab4d]=======================================[/b:df14eaab4d][/color:df14eaab4d]
SELECT ((T.VALOR_DIARIA * T.PERCENTUAL) / 100) FROM TIPO_FUNCIONARIO T, VISITA V, FUNCIONARIO F, DIARIA D WHERE D.COD_VISITA = V.COD_VISITA AND V.COD_FUNC = F.COD_FUNC AND F.COD_TIPO = T.COD_TIPO
[color=red:df14eaab4d][b:df14eaab4d]=======================================[/b:df14eaab4d][/color:df14eaab4d]
:wink: :wink: :wink: :wink:
GOSTEI 0
Vinicius2k
07/10/2004
[b:09dac27b75][color=red:09dac27b75]Notificação de Infração às Regras de Conduta :[/color:09dac27b75][/b:09dac27b75]
Colega barbara.michele,
Neste tópico ocorreu infração às Regras de Conduta do Fórum :
[list:09dac27b75][*:09dac27b75]Falta de clareza o título do tópico. O título deve conter uma breve descrição do problema ou dúvida.[/list:u:09dac27b75]
Peço que leia atentamente as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, estou à sua disposição para ajudar-lhe. Se desejar, envie-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].
Colega barbara.michele,
Neste tópico ocorreu infração às Regras de Conduta do Fórum :
[list:09dac27b75][*:09dac27b75]Falta de clareza o título do tópico. O título deve conter uma breve descrição do problema ou dúvida.[/list:u:09dac27b75]
Peço que leia atentamente as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, estou à sua disposição para ajudar-lhe. Se desejar, envie-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].
GOSTEI 0