Compras - Sugestão de Compras: multiple rows in singleton select At procedure 'PCALC_ESTA_PC_PMA_MVGERAL'

Criado por Adson Pereira em 08/08/2023 17:35  ·  Atualizado em 29/10/2025 18:47  ·  Leitura: 2 min

Situação: Ao gerar o relatório de Sugestão de compras, é retornada a seguinte mensagem: 

---------------------------
Resulthbusiness
---------------------------
General SQL error.

multiple rows in singleton select
At procedure 'PCALC_ESTA_PC_PMA_MVGERAL' line: 110, col: 4.
---------------------------
OK
---------------------------

Foi verificado que a situação ocorreu devido o produto XXXXXX estar com o campo SEQUENCIA na tabela MVGERAL como 0, causando um erro ao tentar realizar o calculo do estoque anterior.

Solução: Para correção realize o seguinte procedimento:

O produto foi identificado pelo select:

select * from mvgeral
where mvgeral.sequencia = 0

 

 

OBS: Para realizar este procedimento o sistema não pode estar em uso.

 

1º: Realize uma cópia de segurança do BD

2º: Desative as Triggers da tabela MVGERAL

3º: Utilize o seguinte select para identificar o ultimo numero da coluna sequencia:

select max(sequencia) from mvgeral

Com o numero em mãos, utilize o seguinte select:

select * from mvgeral
where mvgeral.codprod = 'XXXXXX'
and mvgeral.dt_movimento between '' and '' (preencher com o período retornado no 1º select)
and mvgeral.sequencia = '0'


Ordene os registros por data e vá ate a coluna de sequencia

Altere o valor de 0 para o valor que conseguiu no select max +1

Exemplo, no BD fornecido a sequencia está em 1273907, neste caso o campo será substituído por 1273908, realize a alteração incrementando cada campo para que não se repita o numero, após o procedimento realize o commit.

4º: Reative as Triggers da MVGERAL

5º: Gere o relatório.

Neste caso, o processo Compras - Mensagem de Multiple rows in singleton select ao emitir o relatório de sugestão de compras não serviu para esses produtos.