single row subquery produced more than one row
update receitas set nvisitasobj=(select nvisitasobj from cadmedic where receitas.medico=cadmedic.nomedico),nvisitas=(select nvisitas from cadmedic where receitas.medico=cadmedic.nomedico
estou fazendo assim, o que tem de errado?(paradox)
o erro é o titulo do topico.
estou fazendo assim, o que tem de errado?(paradox)
o erro é o titulo do topico.
Rjcerri
Curtidas 0
Respostas
Beppe
28/07/2005
Parace que tem vários registros ´receitas.medico=cadmedic.nomedico´. cadmedic.nomedico é único?
GOSTEI 0
Rjcerri
28/07/2005
cadmedic.nomedico é unico.
GOSTEI 0
Rjun
28/07/2005
O relacionamento Receitas-CadMedico é 1-1 ou 1-N? Se for 1-N o Select retorna ´N´ registros, por isso o erro.
GOSTEI 0
Rjcerri
28/07/2005
Receitas-CadMedico esta assim N-1, no receitas o nome repeti mas no cadmedic so tem um.
eu usei isso em outro prg e funcionou bem e mrpmatprima2-transmat e N-1
update mrpmatprima2 set estoque=(select estoque12 from transmat where mrpmatprima2.codmat = transmat.codigo)where simulacao=:simu
eu usei isso em outro prg e funcionou bem e mrpmatprima2-transmat e N-1
update mrpmatprima2 set estoque=(select estoque12 from transmat where mrpmatprima2.codmat = transmat.codigo)where simulacao=:simu
GOSTEI 0
Beppe
28/07/2005
AFAIK, não tem problema em receitas.medico aparecer várias vezes, pq aquele seu SQL só trata uma linha por vez da tabela receitas. Só se for algo do Piradox mesmo, mas não deveria ser assim.
GOSTEI 0
Rjun
28/07/2005
Bepee, tem certeza que não da erro? Ele está tentando fazer um update de um campo, mas a subquery retorna mais de um valor.
GOSTEI 0
Beppe
28/07/2005
Bepee, tem certeza que não da erro? Ele está tentando fazer um update de um campo, mas a subquery retorna mais de um valor.
Não [b:283dd21ffc]devia[/b:283dd21ffc] dar erro, nas condições que ele disse(cadmedic.nomedico não repete). Pelo que eu pude ver, a subquery só retornaria mais de uma linha caso houvesse cadmedic.nomedico duplicados, e ele disse não haver.
Não posso agora, ma quando puder faço no FB pra ver o resultado dele.
GOSTEI 0
Rjun
28/07/2005
Cometi um erro. Não tinha reparado que tabela da subquery era cadmedic. Tem certeza que o nome do médico não se repete. Não é uma boa prática você fazer comparação por nome.
GOSTEI 0
Rjcerri
28/07/2005
Tenho, o cadmedic fica so um nome de cada medico e o receitas fica o nome com uma receita.
GOSTEI 0
Rjcerri
28/07/2005
desculpe amigos vcs, tem razão, fui mostrar essa minha duvida ao outro programador e ele me informou que teve uma alteração na tabela, e que agora alguns nomes se repetem no cadmedic. Então não vou conseguir fazer essa SQL?
GOSTEI 0
Michelli88
28/07/2005
Porque não usa codigo do médico?
GOSTEI 0
Rjcerri
28/07/2005
isso mesmo, valeu!!!! :lol:
GOSTEI 0