- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Banco de Dados
- Dúvida com query SQL
Perguntas Dúvida com query SQL
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
11 anos 6 meses atrás - 11 anos 6 meses atrás #14025
por eusouoneto
Dúvida com query SQL foi criado por eusouoneto
Bom dia!
Preciso passa os códigos de produtos da SB1 que não existam na SB0 para a SB0.
Fiz o seguinte:
declare @Recno AS INT
declare @produto varchar(15)
SELECT @Recno =MAX(R_E_C_N_O_)+1 FROM SB0000 SB0
select @produto = B1_COD from SB1000 SB1
where not exists (select B0_COD from SB0000 SB0
where B1_COD=B0_COD
and B0_FILIAL=00)
insert into SB0000 (B0_COD,R_E_C_N_O_)
values(@produto,@Recno)
Funcionou, porém só faz um row de cada vez. Desse jeito vou ficar velho clicando em execute.
A dúvida é a seguinte: Como faço pra levar todos os códigos de uma vez?
Se alguém puder ajudar, agradeço.
Att.: Neto
Preciso passa os códigos de produtos da SB1 que não existam na SB0 para a SB0.
Fiz o seguinte:
declare @Recno AS INT
declare @produto varchar(15)
SELECT @Recno =MAX(R_E_C_N_O_)+1 FROM SB0000 SB0
select @produto = B1_COD from SB1000 SB1
where not exists (select B0_COD from SB0000 SB0
where B1_COD=B0_COD
and B0_FILIAL=00)
insert into SB0000 (B0_COD,R_E_C_N_O_)
values(@produto,@Recno)
Funcionou, porém só faz um row de cada vez. Desse jeito vou ficar velho clicando em execute.
A dúvida é a seguinte: Como faço pra levar todos os códigos de uma vez?
Se alguém puder ajudar, agradeço.
Att.: Neto
Ultima edição: 11 anos 6 meses atrás por eusouoneto.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
11 anos 6 meses atrás #14037
por eusouoneto
Respondido por eusouoneto no tópico Dúvida com query SQL
Ola Kanaãm! Obrigado por responder.
Desculpe minha falta de conhecimento, mas como faria esse loop?
Tentei assim, mas tmb n deu certo:
declare @Recno as int
declare @produto varchar(15)
SELECT @Recno = MAX(R_E_C_N_O_)+1 FROM SB0000
select @produto = B1_COD from SB1000 SB1
where not exists (select B0_COD from SB0000 SB0
where B1_COD=B0_COD
and B0_FILIAL=00)
insert into SB0000 (B0_COD,R_E_C_N_O_)
VALUES (@Produto,@Recno + ROW_NUMBER() OVER (ORDER BY R_E_C_N_O_ ASC))
Ocorre o seguinte erro:
Msg 207, Level 16, State 1, Line 9
Invalid column name 'R_E_C_N_O_'.
Msg 4108, Level 15, State 1, Line 9
Windowed functions can only appear in the SELECT or ORDER BY clauses.
Obrigado pela atenção.
Att.: Neto.
Desculpe minha falta de conhecimento, mas como faria esse loop?
Tentei assim, mas tmb n deu certo:
declare @Recno as int
declare @produto varchar(15)
SELECT @Recno = MAX(R_E_C_N_O_)+1 FROM SB0000
select @produto = B1_COD from SB1000 SB1
where not exists (select B0_COD from SB0000 SB0
where B1_COD=B0_COD
and B0_FILIAL=00)
insert into SB0000 (B0_COD,R_E_C_N_O_)
VALUES (@Produto,@Recno + ROW_NUMBER() OVER (ORDER BY R_E_C_N_O_ ASC))
Ocorre o seguinte erro:
Msg 207, Level 16, State 1, Line 9
Invalid column name 'R_E_C_N_O_'.
Msg 4108, Level 15, State 1, Line 9
Windowed functions can only appear in the SELECT or ORDER BY clauses.
Obrigado pela atenção.
Att.: Neto.
Por favor Acessar ou Registrar para participar da conversa.
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
11 anos 6 meses atrás #14040
por eusouoneto
Respondido por eusouoneto no tópico Dúvida com query SQL
Fiz assim, ta executando a query, daqui a pouco posto o resultado.
declare @Recno as int
declare @produto varchar(15)
while @produto is null or @produto = ''
SELECT @Recno = MAX(R_E_C_N_O_)+1 FROM SB0000
select @produto = B1_COD from SB1000 SB1
where not exists (select B0_COD from SB0000 SB0
where B1_COD=B0_COD
and B0_FILIAL=00)
insert into SB0000 (B0_COD,R_E_C_N_O_)
VALUES (@Produto,@Recno)
declare @Recno as int
declare @produto varchar(15)
while @produto is null or @produto = ''
SELECT @Recno = MAX(R_E_C_N_O_)+1 FROM SB0000
select @produto = B1_COD from SB1000 SB1
where not exists (select B0_COD from SB0000 SB0
where B1_COD=B0_COD
and B0_FILIAL=00)
insert into SB0000 (B0_COD,R_E_C_N_O_)
VALUES (@Produto,@Recno)
Por favor Acessar ou Registrar para participar da conversa.
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
11 anos 6 meses atrás #14045
por eusouoneto
Respondido por eusouoneto no tópico Dúvida com query SQL
Cara, eu acho q entrou em loop eterno aqui, hehe. Tem uma hora e meia q esta executando a query.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 6 meses atrás #14046
por kanaamlrr
Respondido por kanaamlrr no tópico Dúvida com query SQL
acho que faltou um BEGIN e um END do seu loop, da uma olhada lá na documentação que te passei
acho que ele está executando somente a linha do select max
acho que ele está executando somente a linha do select max
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Banco de Dados
- Dúvida com query SQL
Tempo para a criação da página:0.110 segundos