Perguntas query para somar um campo texto

Mais
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,',')

Por favor Acessar ou Registrar para participar da conversa.

Mais
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

Por favor Acessar ou Registrar para participar da conversa.

Mais
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!
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.

Mais
8 anos 7 meses atrás #29027 por vcosta
Respondido por vcosta no tópico query para somar um campo texto
Kanaân,
Muitissimo obrigado.

Funcionou e ficou muito bom. valeu mesmo.

forte abraço
valter

Por favor Acessar ou Registrar para participar da conversa.

Mais
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

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 7 meses atrás #29074 por kanaamlrr
Respondido por kanaamlrr no tópico query para somar um campo texto
Joga ai a query de update que tu está tentando utilizar que eu monto o exemplo...

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.135 segundos
Joomla templates by a4joomla