A Wanderley C Postado Julho 12, 2011 Denunciar Share Postado Julho 12, 2011 Boa tarde,Estou precisando fazer este update na tabela em todos os registros que atenderem ao "where" mas não estou conseguindo com o comando abaixo:UPDATE Contratados Set Contratados.CON_CdiSituacao = 2 FROM Empresas Empresas INNER JOIN Locais Locais ON ( (Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa) ) INNER JOIN Folhas Folhas ON ( (Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal) ) INNER JOIN Contratados Contratados ON ( (Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha) ) WHERE ( Empresas.EMP_OplDesativada IS NOT NULL )Agradeço antecipado qualquer ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 12, 2011 Denunciar Share Postado Julho 12, 2011 Boa tarde Wanderley, Qual o erro q está ocorrendo? Poderá fazer desta forma também:UPDATE Contratados Set Contratados.CON_CdiSituacao = 2 FROM Empresas, Locais, Folhas, Contratados WHERE Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa AND Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal AND Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha AND Empresas.EMP_OplDesativada IS NOT NULL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 A Wanderley C Postado Julho 12, 2011 Autor Denunciar Share Postado Julho 12, 2011 Boa tarde,Estou precisando fazer este update na tabela em todos os registros que atenderem ao "where" mas não estou conseguindo com o comando abaixo:UPDATE Contratados Set Contratados.CON_CdiSituacao = 2FROM Empresas Empresas INNER JOIN Locais Locais ON ( (Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa) ) INNER JOIN Folhas Folhas ON ( (Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal) ) INNER JOIN Contratados Contratados ON ( (Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha) ) WHERE ( Empresas.EMP_OplDesativada IS NOT NULL )Agradeço antecipado qualquer ajuda.Boa tarde Wanderley, Qual o erro q está ocorrendo? Poderá fazer desta forma também:UPDATE Contratados Set Contratados.CON_CdiSituacao = 2 FROM Empresas, Locais, Folhas, Contratados WHERE Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa AND Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal AND Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha AND Empresas.EMP_OplDesativada IS NOT NULL Fulvio, Grato pela atenção. Executei o comando e depois dei um Select mas não alterou nada, inclusive no comando que lhe passei, falto a última linha. Segue completo agora: UPDATE Contratados Set Contratados.CON_CdiSituacao = 2 FROM Empresas Empresas INNER JOIN Locais Locais ON ( (Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa) ) INNER JOIN Folhas Folhas ON ( (Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal) ) INNER JOIN Contratados Contratados ON ( (Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha) ) WHERE ( Empresas.EMP_OplDesativada IS NOT NULL ) AND ( Contratados.CON_CdiSituacao IN (1,3,5,6,7,9) ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 12, 2011 Denunciar Share Postado Julho 12, 2011 Se não alterou nada, quer dizer que seu script está correto, mas os filtros não estão "achando" nenhum registro para alterar. Para conferir, você pode pegar a estrutura do "update" como está e alterar para "select". Aí você poderá conferir o que lista como resultado. Ficará assim:SELECT * FROM Empresas Empresas INNER JOIN Locais Locais ON ( (Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa) ) INNER JOIN Folhas Folhas ON ( (Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal) ) INNER JOIN Contratados Contratados ON ( (Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha) ) WHERE ( Empresas.EMP_OplDesativada IS NOT NULL ) AND ( Contratados.CON_CdiSituacao IN (1,3,5,6,7,9) ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 A Wanderley C Postado Julho 12, 2011 Autor Denunciar Share Postado Julho 12, 2011 Tentei o select e não apareceu nada, mas observei que alguns itens do comando, quando coloco no SQL, eles ficam meio apagados e não com a cor bem forte zul como os demais.Dei um print na tela como posso anexar para você olhar?Grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 12, 2011 Denunciar Share Postado Julho 12, 2011 É por isso que o update não está alterando nada. Se no select não listar registros, o update não irá alterar nada. O seu select está incorreto, ou realmente não existem registros a serem alterados. Em relação a cor, se estiver em algum aplicativo de edição (ou até mesmo na parte gráfica do sql) as palavras reservadas, funções nativas, cláusulas, etc aparecerão de cores diferentes. Não se preocupe quanto a isto. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
A Wanderley C
Boa tarde,
Estou precisando fazer este update na tabela em todos os registros que atenderem ao "where" mas não estou conseguindo com o comando abaixo:
Agradeço antecipado qualquer ajuda.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.