GARANTIR DESCONTO

Fórum single row subquery produced more than one row #289809

28/07/2005

0

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.


Rjcerri

Rjcerri

Responder

Posts

28/07/2005

Beppe

Parace que tem vários registros ´receitas.medico=cadmedic.nomedico´. cadmedic.nomedico é único?


Responder

Gostei + 0

28/07/2005

Rjcerri

cadmedic.nomedico é unico.


Responder

Gostei + 0

28/07/2005

Rjun

O relacionamento Receitas-CadMedico é 1-1 ou 1-N? Se for 1-N o Select retorna ´N´ registros, por isso o erro.


Responder

Gostei + 0

28/07/2005

Rjcerri

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


Responder

Gostei + 0

28/07/2005

Beppe

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.


Responder

Gostei + 0

28/07/2005

Rjun

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.


Responder

Gostei + 0

28/07/2005

Beppe

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.


Responder

Gostei + 0

28/07/2005

Rjun

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.


Responder

Gostei + 0

28/07/2005

Rjcerri

Tenho, o cadmedic fica so um nome de cada medico e o receitas fica o nome com uma receita.


Responder

Gostei + 0

28/07/2005

Rjcerri

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?


Responder

Gostei + 0

28/07/2005

Michelli88

Porque não usa codigo do médico?


Responder

Gostei + 0

28/07/2005

Rjcerri

isso mesmo, valeu!!!! :lol:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar