 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Eugenio_jose Novato

Registrado: Sexta-Feira, 6 de Março de 2015 Mensagens: 69
|
Enviada: Sex Dez 18, 2015 10:43 am Assunto: Select dentro de update firebird 2.5 |
|
|
Boa tarde, estou querendo atualizar um campo (COMISSAO), só que o valor que quero pegar eu tento obter atraves de um SELECT e por nada dá certo, alguém sabe o que posso estar fazendo de errado nomeu codigo?
Estou tentando fazer diretamente no IBCONSOLE.
update AEAULAS set COMISSAO = (select AEAULAS.codaluno,CONTAULA.comissao from AEAULAS
inner join CONTAULA on (CONTAULA.dataula = AEAULAS.dataula)
where (AEAULAS.codaluno = CONTAULA.codaluno) and (AEAULAS.dataula = CONTAULA.dataula))
A mensagem de erro que dá é a seguinte:
ISC ERROR CODE:335544569
ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Invalid command
count of column list and variable list do not match |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
|
| Voltar ao Topo |
|
 |
Eugenio_jose Novato

Registrado: Sexta-Feira, 6 de Março de 2015 Mensagens: 69
|
Enviada: Sex Dez 18, 2015 7:49 pm Assunto: Select dentro de update firebird 2.5 |
|
|
Obrigado pela atenção, só que não deu certo ele não levou os valores que deveria levar, acho até que pode ser pela falta do join. Cheguei tarde mas vou tentar.
sds
Eugenio |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Dez 18, 2015 8:06 pm Assunto: |
|
|
Acho que seria melhor se você tivesse postado alguns valores de exemplo nos registros das tabelas para poder entender melhor, mas desconfio que não seja o caso de utilizar Join.
Da forma como está o comando que sugeri, é gravado o valor do campo Comissao da tabela Contaula cujo registro possui o mesmo valor nos campos Codaluno e Dataula da tabela Aeaulas.
Se não gravou os valores esperados, talvez seja o caso de adicionar ou trocar os filtros da clausula Where.
Espero que ajude |
|
| Voltar ao Topo |
|
 |
Eugenio_jose Novato

Registrado: Sexta-Feira, 6 de Março de 2015 Mensagens: 69
|
Enviada: Qua Dez 23, 2015 12:20 pm Assunto: Select dentro de update firebird 2.5 |
|
|
Caro colega, acho que eu estou fazendo uma bobagem, não preciso CRIAR o campo COMISSÃO na minas tabela AEAULAS.
Eu tenho uma tabela chamada CONTAULA onde já tem o valor da COMISSÃO e tenho tenho o campo CODALUNO também. Olha a estrutura de minhas tabelas;
TABELA AEAULAS
"CODIGO" INTEGER,
"CODALUNO" INTEGER,
"NOMALUNO" VARCHAR(50) CHARACTER SET WIN1252,
"CARTEIRA" VARCHAR(14) CHARACTER SET WIN1252,
"NOMINSTR" VARCHAR(50) CHARACTER SET WIN1252,
"DATAULA" DATE,
"DTBAIXA" DATE,
TABELA CONTAULA
"CODIGO" INTEGER,
"CARTEIRA" VARCHAR(14) CHARACTER SET WIN1252,
"INSTRUTOR" VARCHAR(40) CHARACTER SET WIN1252,
"DATAULA" DATE,
"CODALUNO" INTEGER,
"NOMALUNO" VARCHAR(50) CHARACTER SET WIN1252,
"COMISSAO" NUMERIC(10,2),
Estou pensando em montar um select onde iria pegar o valor da COMISSÃO usando os campos CODALUNO, DATAULA da tabela CONTAULA e da tabela AEAULAS.
Acha que pode dar certo assim?
Como sugeri que eu faça?
sds
Eugenio
| imex escreveu: | Acho que seria melhor se você tivesse postado alguns valores
de exemplo nos registros das tabelas para poder entender melhor, mas desconfio que não seja o caso de utilizar Join.
Da forma como está o comando que sugeri, é gravado o valor do campo Comissao da tabela Contaula cujo registro possui o mesmo valor nos campos Codaluno e Dataula da tabela Aeaulas.
Se não gravou os valores esperados, talvez seja o caso de adicionar ou trocar os filtros da clausula Where.
Espero que ajude |
|
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Dez 28, 2015 8:59 am Assunto: |
|
|
Acho que você pode montar uma query com Join. Ex:
| Código: | select
a.Codigo,
a.CodAluno,
a.NomAluno,
a.DatAula,
c.Comissao
from AEAULAS as a
inner join CONTAULA as c
on c.CodAluno = a.CodAluno and
c.DatAula = a.DatAula |
obs: me parece que não é necessário ter o campo NomAluno na tabela CONTAULA
Espero que ajude |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|