Tenho 2 consulta em uma caso um retorne vazio executa update da outra
10/08/2022
0
Bom dia Pessoal,
Estou precisando da ajuda de voce para criar uma consulta onde tenho 2 analista se na primeira analisa retorna verdadeiro executa um update caso contrario analisa a segunda consulta tem dados executa o update, segue abaixo uma consulta que estou tentando fazer isso funcionar mas não estou conseguindo se alguem puder me ajudar.
DECLARE @CPOFILIAL VARCHAR(2)
DECLARE @CPONOTA VARCHAR(9)
SET @CPOFILIAL = '70'
SET @CPONOTA = '000183671'
-- Entrada
If SELECT ISNULL((
SELECT F1_HORA
- FROM SF1010(NOLOCK)
WHERE F1_HORA = ''
AND D_E_L_E_T_ = ''
AND F1_FILIAL = @CPOFILIAL
AND F1_DOC = @CPONOTA
), UPDATE SF1010 SET F1_HORA = '' WHERE
AND D_E_L_E_T_ = ''
AND F1_FILIAL = @CPOFILIAL
AND F1_DOC = @CPONOTA,
)
---- Saida
SELECT F2_HORA
FROM SF2010(NOLOCK)
WHERE F2_HORA = ''
AND D_E_L_E_T_ = ''
AND F2_FILIAL = @CPOFILIAL
AND F2_DOC = @CPONOTA
--IF Entrada FOR vazio verifica Saida e se encontrar a nota faz o UPDATE
--UPDATE SF1010 SET F1_HORA ='' WHERE AND D_E_L_E_T_='' AND F1_FILIAL =@CPOFILIAL AND F1_DOC = @CPONOTA
--UPDATE SF2010 SET F2_HORA ='' WHERE AND D_E_L_E_T_='' AND F2_FILIAL =@CPOFILIAL AND F2_DOC = @CPONOTA
Estou precisando da ajuda de voce para criar uma consulta onde tenho 2 analista se na primeira analisa retorna verdadeiro executa um update caso contrario analisa a segunda consulta tem dados executa o update, segue abaixo uma consulta que estou tentando fazer isso funcionar mas não estou conseguindo se alguem puder me ajudar.
DECLARE @CPOFILIAL VARCHAR(2)
DECLARE @CPONOTA VARCHAR(9)
SET @CPOFILIAL = '70'
SET @CPONOTA = '000183671'
-- Entrada
If SELECT ISNULL((
SELECT F1_HORA
- FROM SF1010(NOLOCK)
WHERE F1_HORA = ''
AND D_E_L_E_T_ = ''
AND F1_FILIAL = @CPOFILIAL
AND F1_DOC = @CPONOTA
), UPDATE SF1010 SET F1_HORA = '' WHERE
AND D_E_L_E_T_ = ''
AND F1_FILIAL = @CPOFILIAL
AND F1_DOC = @CPONOTA,
)
---- Saida
SELECT F2_HORA
FROM SF2010(NOLOCK)
WHERE F2_HORA = ''
AND D_E_L_E_T_ = ''
AND F2_FILIAL = @CPOFILIAL
AND F2_DOC = @CPONOTA
--IF Entrada FOR vazio verifica Saida e se encontrar a nota faz o UPDATE
--UPDATE SF1010 SET F1_HORA ='' WHERE AND D_E_L_E_T_='' AND F1_FILIAL =@CPOFILIAL AND F1_DOC = @CPONOTA
--UPDATE SF2010 SET F2_HORA ='' WHERE AND D_E_L_E_T_='' AND F2_FILIAL =@CPOFILIAL AND F2_DOC = @CPONOTA
Wanderson Fernandes
Curtir tópico
+ 0
Responder
Posts
10/08/2022
Emerson Nascimento
respondendo o que você perguntou:
mas não bastaria somente atualizar, sem necessidade de IFs?
DECLARE @CPOFILIAL VARCHAR(2) DECLARE @CPONOTA VARCHAR(9) SET @CPOFILIAL = '70' SET @CPONOTA = '000183671' -- Entrada IF EXISTS( SELECT F1_HORA FROM SF1010(NOLOCK) WHERE D_E_L_E_T_ = '' AND F1_FILIAL = @CPOFILIAL AND F1_DOC = @CPONOTA AND F1_HORA > '' ) UPDATE SF1010 SET F1_HORA = '' WHERE D_E_L_E_T_ = '' AND F1_FILIAL = @CPOFILIAL AND F1_DOC = @CPONOTA ELSE IF EXISTS( SELECT F2_HORA FROM SF2010(NOLOCK) WHERE D_E_L_E_T_ = '' AND F2_FILIAL = @CPOFILIAL AND F2_DOC = @CPONOTA AND F2_HORA > '' ) UPDATE SF2010 SET F2_HORA = '' WHERE D_E_L_E_T_ = '' AND F2_FILIAL = @CPOFILIAL AND F2_DOC = @CPONOTA
mas não bastaria somente atualizar, sem necessidade de IFs?
DECLARE @CPOFILIAL VARCHAR(2) DECLARE @CPONOTA VARCHAR(9) UPDATE SF1010 SET F1_HORA = '' WHERE D_E_L_E_T_ = '' AND F1_FILIAL = @CPOFILIAL AND F1_DOC = @CPONOTA AND F1_HORA > '' UPDATE SF2010 SET F2_HORA = '' WHERE D_E_L_E_T_ = '' AND F2_FILIAL = @CPOFILIAL AND F2_DOC = @CPONOTA AND F2_HORA > ''
Responder
10/08/2022
Wanderson Fernandes
respondendo o que você perguntou:
mas não bastaria somente atualizar, sem necessidade de IFs?
DECLARE @CPOFILIAL VARCHAR(2) DECLARE @CPONOTA VARCHAR(9) SET @CPOFILIAL = '70' SET @CPONOTA = '000183671' -- Entrada IF EXISTS( SELECT F1_HORA FROM SF1010(NOLOCK) WHERE D_E_L_E_T_ = '' AND F1_FILIAL = @CPOFILIAL AND F1_DOC = @CPONOTA AND F1_HORA > '' ) UPDATE SF1010 SET F1_HORA = '' WHERE D_E_L_E_T_ = '' AND F1_FILIAL = @CPOFILIAL AND F1_DOC = @CPONOTA ELSE IF EXISTS( SELECT F2_HORA FROM SF2010(NOLOCK) WHERE D_E_L_E_T_ = '' AND F2_FILIAL = @CPOFILIAL AND F2_DOC = @CPONOTA AND F2_HORA > '' ) UPDATE SF2010 SET F2_HORA = '' WHERE D_E_L_E_T_ = '' AND F2_FILIAL = @CPOFILIAL AND F2_DOC = @CPONOTA
mas não bastaria somente atualizar, sem necessidade de IFs?
DECLARE @CPOFILIAL VARCHAR(2) DECLARE @CPONOTA VARCHAR(9) UPDATE SF1010 SET F1_HORA = '' WHERE D_E_L_E_T_ = '' AND F1_FILIAL = @CPOFILIAL AND F1_DOC = @CPONOTA AND F1_HORA > '' UPDATE SF2010 SET F2_HORA = '' WHERE D_E_L_E_T_ = '' AND F2_FILIAL = @CPOFILIAL AND F2_DOC = @CPONOTA AND F2_HORA > ''
Boa Tarde Emerson,
Muito obrigado pela ajuda, rodou certinho.
Responder
Clique aqui para fazer login e interagir na Comunidade :)