Boa Tarde,
Foi desenvolvido uma sentença para retornar o resultado da memória de cálculo da correção monetária da parcela, mas me deparei com uma situação que não consigo solucionar. Segue:
A query retorna o seguinte resultado:
10/2010: 0,2070%
11/2010: 0,1966%
12/2010: 0,3696%
01/2011: (1 + 0,6662%) ^ (27/31) - 1
0,0135959068840148652963042088 (VARIACAO FINAL) * R$ 1.800,00 (VALOR BASE) = R$ 24,47
10/2010: 0,2070%
11/2010: 0,1966%
12/2010: 0,3696%
01/2011: (1 + 0,6662%) ^ (26/31) - 1
0,0133788262545877084256456052 (VARIACAO FINAL) * R$ 10.000,00 (VALOR BASE) = R$ 133,79
10/2010: 0,2070%
11/2010: 0,1966%
12/2010: 0,3696%
01/2011: (1 + 0,6662%) ^ (30/31) - 1
0,0142474278233102089589305567 (VARIACAO FINAL) * R$ 0,00 (VALOR BASE) = R$ 0,00
------
Pq na sentença foi solicitado o retorno do último registro e primeira informação da correção de cada grupo, o problema é que se consultar o log da parcela o texto esta assim:
Modelo 0
10/2010: 0,2070%
11/2010: 0,1966%
12/2010: 0,3696%
01/2011: (1 + 0,6662%) ^ (30/31) - 1
0,0142474278233102089589305567 (Variação Final) * R$ 0,00 (Valor Base) = R$ 0,00 (Correção Monetária)
Modelo 0
10/2010: 0,2070%
11/2010: 0,1966%
12/2010: 0,3696%
01/2011: (1 + 0,6662%) ^ (30/31) - 1
0,0142474278233102089589305567 (Variação Final) * R$ 262.708,00 (Valor Base) = R$ 3.742,91 (Correção Monetária)
--------
E o que deveria retornar é a última informação (com valor).
Abaixo a sentença:
------
Select
max(substring(memocalculo,(patindex('%Modelo 0%',memocalculo)+10), (patindex('%(correção monetária)%' ,MEMOCALCULO)-
(patindex('%Modelo 0%',memocalculo)+10))))
from XPARCELAPAGAMENTO WHERE
MEMOCALCULO like '%modelo 0%' and
XPARCELAPAGAMENTO.NUM_VENDA IN
(
SELECT NUM_VENDA FROM XITEMVENDA WHERE
COD_PESS_EMPR = 1 AND
NUM_UNID = '1' AND
NUM_SUB_UNID = '000604'
)
GROUP BY COD_TIPO_PARC , XPARCELAPAGAMENTO.COD_GRUPO
------
Há como fazer a sentença buscar a informação, mas retornando a que tiver valor (<> de R$ 0,00)?
Como é um campo texto não consegui trabalhar bem com o dado.
Obrigada.
At,
Gislane.