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.