- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Banco de Dados
- query para somar um campo texto
Perguntas query para somar um campo texto
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
9 anos 2 meses atrás - 9 anos 2 meses atrás #29025
por kanaamlrr
Respondido por kanaamlrr no tópico query para somar um campo texto
Tenta assim!
Abraço!
Depois para gravar em uma tabela o resultado você só vai precisar fazer um join.
Abraço!
WITH ValList AS(
SELECT E4_CODIGO,
CAST(LEFT(RTRIM(E4_COND),CASE WHEN PATINDEX('%,%', RTRIM(E4_COND)) = 0 THEN 50 ELSE PATINDEX('%,%', RTRIM(E4_COND)) - 1 END) AS FLOAT) Val,
RIGHT(RTRIM(E4_COND),LEN(RTRIM(E4_COND)) - PATINDEX('%,%', RTRIM(E4_COND))) Remainder--, RTRIM(E4_COND), LEN(RTRIM(E4_COND)), PATINDEX('%,%', RTRIM(E4_COND)), RIGHT(RTRIM(E4_COND),5)
FROM SE4010 --WHERE RTRIM(E4_COND) LIKE '%,%'
UNION ALL
SELECT E4_CODIGO,
CAST(LEFT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN LEN(Remainder) ELSE PATINDEX('%,%', Remainder) - 1 END) AS FLOAT) Val,
RIGHT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN 0 ELSE LEN(Remainder) - PATINDEX('%,%', Remainder) END) Remainder
FROM ValList
WHERE LEN(Remainder) > 0
)
SELECT E4_CODIGO,
SUM(Val)
FROM ValList
GROUP BY E4_CODIGO
Depois para gravar em uma tabela o resultado você só vai precisar fazer um join.
Ultima edição: 9 anos 2 meses atrás por kanaamlrr.
Por favor Acessar ou Registrar para participar da conversa.
- vcosta
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
- vcosta
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
9 anos 2 meses atrás #29070
por vcosta
Respondido por vcosta no tópico query para somar um campo texto
KANAÂN,
Posso abusar do seu conhecimento?...rsrsr
como posso gravar o resultado desta query em outro campo utilizando o join?
obrigado
valter
Posso abusar do seu conhecimento?...rsrsr
como posso gravar o resultado desta query em outro campo utilizando o join?
obrigado
valter
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- vcosta
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
9 anos 2 meses atrás #29109
por vcosta
Respondido por vcosta no tópico query para somar um campo texto
WITH ValList AS(
SELECT E4_CODIGO,
CAST(LEFT(RTRIM(E4_COND),CASE WHEN PATINDEX('%,%', RTRIM(E4_COND)) = 0 THEN 50 ELSE PATINDEX('%,%', RTRIM(E4_COND)) - 1 END) AS FLOAT) Val,
RIGHT(RTRIM(E4_COND),LEN(RTRIM(E4_COND)) - PATINDEX('%,%', RTRIM(E4_COND))) Remainder--, RTRIM(E4_COND), LEN(RTRIM(E4_COND)), PATINDEX('%,%', RTRIM(E4_COND)), RIGHT(RTRIM(E4_COND),5)
FROM SE4010 --WHERE RTRIM(E4_COND) LIKE '%,%'
UNION ALL
SELECT E4_CODIGO,
CAST(LEFT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN LEN(Remainder) ELSE PATINDEX('%,%', Remainder) - 1 END) AS FLOAT) Val,
RIGHT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN 0 ELSE LEN(Remainder) - PATINDEX('%,%', Remainder) END) Remainder
FROM ValList
WHERE LEN(Remainder) > 0
)
SELECT E4_CODIGO,
SUM(Val)
FROM ValList
GROUP BY E4_CODIGO
QUERO GRAVAR O RESULTADO SUM(Val) no campo E4_MITDIAS
obrigado
Valter
SELECT E4_CODIGO,
CAST(LEFT(RTRIM(E4_COND),CASE WHEN PATINDEX('%,%', RTRIM(E4_COND)) = 0 THEN 50 ELSE PATINDEX('%,%', RTRIM(E4_COND)) - 1 END) AS FLOAT) Val,
RIGHT(RTRIM(E4_COND),LEN(RTRIM(E4_COND)) - PATINDEX('%,%', RTRIM(E4_COND))) Remainder--, RTRIM(E4_COND), LEN(RTRIM(E4_COND)), PATINDEX('%,%', RTRIM(E4_COND)), RIGHT(RTRIM(E4_COND),5)
FROM SE4010 --WHERE RTRIM(E4_COND) LIKE '%,%'
UNION ALL
SELECT E4_CODIGO,
CAST(LEFT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN LEN(Remainder) ELSE PATINDEX('%,%', Remainder) - 1 END) AS FLOAT) Val,
RIGHT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN 0 ELSE LEN(Remainder) - PATINDEX('%,%', Remainder) END) Remainder
FROM ValList
WHERE LEN(Remainder) > 0
)
SELECT E4_CODIGO,
SUM(Val)
FROM ValList
GROUP BY E4_CODIGO
QUERO GRAVAR O RESULTADO SUM(Val) no campo E4_MITDIAS
obrigado
Valter
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
9 anos 2 meses atrás #29113
por kanaamlrr
Acho que deve funcionar!!
Faz um teste ae!!!
Respondido por kanaamlrr no tópico query para somar um campo texto
WITH ValList AS(
SELECT E4_CODIGO,
CAST(LEFT(RTRIM(E4_COND),CASE WHEN PATINDEX('%,%', RTRIM(E4_COND)) = 0 THEN 50 ELSE PATINDEX('%,%', RTRIM(E4_COND)) - 1 END) AS FLOAT) Val,
RIGHT(RTRIM(E4_COND),LEN(RTRIM(E4_COND)) - PATINDEX('%,%', RTRIM(E4_COND))) Remainder--, RTRIM(E4_COND), LEN(RTRIM(E4_COND)), PATINDEX('%,%', RTRIM(E4_COND)), RIGHT(RTRIM(E4_COND),5)
FROM SE4010 --WHERE RTRIM(E4_COND) LIKE '%,%'
UNION ALL
SELECT E4_CODIGO,
CAST(LEFT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN LEN(Remainder) ELSE PATINDEX('%,%', Remainder) - 1 END) AS FLOAT) Val,
RIGHT(Remainder,CASE WHEN PATINDEX('%,%', Remainder) = 0 THEN 0 ELSE LEN(Remainder) - PATINDEX('%,%', Remainder) END) Remainder
FROM ValList
WHERE LEN(Remainder) > 0
)
UPDATE SE4010 SET E4_MITDIAS = TOTAL
FROM SE4010 E4 INNER JOIN
(SELECT E4_CODIGO,
SUM(Val) AS TOTAL
FROM ValList
GROUP BY E4_CODIGO) VL ON VL.E4_CODIGO = E4.E4_CODIGO AND D_E_L_E_T_ <> '*' AND E4.E4_FILIAL ='01'
Acho que deve funcionar!!
Faz um teste ae!!!
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Banco de Dados
- query para somar um campo texto
Tempo para a criação da página:0.121 segundos