- 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
- diegobertodo
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 75
- Obrigados Recebidos: 0
8 anos 8 meses atrás #29010
por diegobertodo
Respondido por diegobertodo no tópico query para somar um campo texto
Valter,
pela sua resposta tu não alterou...
declare @cond as varchar(20)
set @cond = (SELECT E4_COND FROM dbo.SE4010 WHERE E4_CODIGO = '14')
select sum(convert(int,splitdata)) from dbo.fnSplitString(@cond,',')
Tenta colocar esse trexo..
declare @cond as varchar(20)
set @cond = (SELECT E4_COND FROM dbo.SE4010 WHERE E4_CODIGO = '14')
select sum(convert(int,splitdata)) from dbo.SE4010(@cond,',')
pela sua resposta tu não alterou...
declare @cond as varchar(20)
set @cond = (SELECT E4_COND FROM dbo.SE4010 WHERE E4_CODIGO = '14')
select sum(convert(int,splitdata)) from dbo.fnSplitString(@cond,',')
Tenta colocar esse trexo..
declare @cond as varchar(20)
set @cond = (SELECT E4_COND FROM dbo.SE4010 WHERE E4_CODIGO = '14')
select sum(convert(int,splitdata)) from dbo.SE4010(@cond,',')
Por favor Acessar ou Registrar para participar da conversa.
- vcosta
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 7 meses atrás #29021
por vcosta
Respondido por vcosta no tópico query para somar um campo texto
Oi Diego,
ja tentei de tudo e não roda, fiz conforme vc mencionou.
declare @cond as varchar(20)
set @cond = (SELECT E4_COND FROM dbo.SE4010 WHERE E4_CODIGO = '14')
select sum(convert(int,splitdata)) from dbo.SE4010(@cond,',')
Mensagem 215, Nível 16, Estado 1, Linha 3
Parameters supplied for object 'dbo.SE4010' which is not a function. If the parameters are intended as a table hint, a WITH keyword is required.
desculpe pela insistencia, mas se puder ajudar fico grato.
abs.
Valter
ja tentei de tudo e não roda, fiz conforme vc mencionou.
declare @cond as varchar(20)
set @cond = (SELECT E4_COND FROM dbo.SE4010 WHERE E4_CODIGO = '14')
select sum(convert(int,splitdata)) from dbo.SE4010(@cond,',')
Mensagem 215, Nível 16, Estado 1, Linha 3
Parameters supplied for object 'dbo.SE4010' which is not a function. If the parameters are intended as a table hint, a WITH keyword is required.
desculpe pela insistencia, mas se puder ajudar fico grato.
abs.
Valter
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
8 anos 7 meses atrás - 8 anos 7 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: 8 anos 7 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
8 anos 7 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
- 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.135 segundos