A Wanderley C Posted July 12, 2011 Report Share Posted July 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. Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted July 12, 2011 Report Share Posted July 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 Quote Link to comment Share on other sites More sharing options...
0 A Wanderley C Posted July 12, 2011 Author Report Share Posted July 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) ) Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted July 12, 2011 Report Share Posted July 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) ) Quote Link to comment Share on other sites More sharing options...
0 A Wanderley C Posted July 12, 2011 Author Report Share Posted July 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. Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted July 12, 2011 Report Share Posted July 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. Quote Link to comment Share on other sites More sharing options...
Question
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 to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.