Como Somar um campo do tipo Varchar

Firebird

08/09/2007

olá, preciso muito da ajuda de vc´s

eu enfrento o seguinte problema:

eu tenho um sistema que controla as frequencias de funcionarios.
até aki blz.
o problema acontece quando um funcionario troca de lotação detro de periodo, período esse q é de 1 a 30 de cada mês, pq ao lançar a frequancia desse funcionario oq ocorre. digamos q ele estava lotado no setor 1 e foi relotato para o setro 2 dia 15, nesse período ele tera sua frequencia informada 14 dias pelo setor 1 e 15 dias pelo setor 2 ok. até ai blz eu fiz o seguinte select:
[b:87c1fd2f93]
Select fc.id_funcionario, fc.matricula, fc.nm_funcionario,
Sum(fq.qt_trab)as TotalDiasTrab

from lotacao l, frequencia fq, funcionario fc, unidade_setor us
where
fq.id_lotacao = l.id_lotacao and
l.id_unidade_setor = us.id_unidade_setor and
l.id_funcionario = fc.id_funcionario and
fq.dt_periodo = ´2007-08-01´

group by fc.id_funcionario, fc.matricula, fc.nm_funcionario
[/b:87c1fd2f93]

Esse select resolve meu problema em parte ele soma as frequecia no período q o funcionario tiver. [b:87c1fd2f93]Bem mas agora vem meu problema eu tenho um campo nome ´obs´ tipo varchar(255) na tabela frequencia que eu preciso juntar. [/b:87c1fd2f93]

COMO EU FAÇO PARA SOMAR ESSE CAMPO ´OBS´ NESSE SELECT?


Izidoriojr

Izidoriojr

Curtidas 0

Respostas

Pestana_

Pestana_

08/09/2007

eu não entendi direito, mas tem uma função no Interbase/Firebird chamado [b:4117a6bb20]CAST[/b:4117a6bb20] que converte tipo de dado em outro, se o tipo do campo [b:4117a6bb20]obs[/b:4117a6bb20] for varchar e conter somente números, então você pode converter no select para numéricos e depois efetuar a soma com outro compo do mesmo tipo. ex.:

CAST(obs as integer) + campo


verifique se funciona,
flw.


GOSTEI 0
Izidoriojr

Izidoriojr

08/09/2007

flw pela ajuda mas
Não vai funcionar eu quero somar o conteudo dos campos tipo concatenar.
a tabela frequencia vai estar assim:

idFuncionario:1
Periodo: 08/2007
setor: 1
qt_trab: 14
obs: Ficou lotado no Setor 1, até o dia 14/08/2007.

idFuncionario:1
Periodo: 08/2007
setor: 2
qt_trab: 26
obs: Inicio da Lotacao no setor 2, dia 15/08/2007.

agora com o select eu preciso do seguinde resultado:

idFuncionario: 1
Periodo: 08/2007
TotaldiasTrab: 30
obs: Ficou lotado no Setor 1, até o dia 14/08/2007.Inicio da Lotacao no setor 2, dia 15/08/2007.


falew pela ajuda


GOSTEI 0
Pestana_

Pestana_

08/09/2007

idFuncionario:1 Periodo: 08/2007 setor: 1 qt_trab: 14 obs: Ficou lotado no Setor 1, até o dia 14/08/2007. idFuncionario:1 Periodo: 08/2007 setor: 2 qt_trab: 26 obs: Inicio da Lotacao no setor 2, dia 15/08/2007.


este dois registros estão na mesma tabela? caso não, informe as tabelas.


aguardo,
pestana.


GOSTEI 0
Izidoriojr

Izidoriojr

08/09/2007

Sim estes dados estão na mesma tabela por isso minha dificuldade.

Eu inclusive criei um campo lookup no ClientDataSet mas quando eu exporto pro excel so vai uma linha do Campo ´Obs´.

flw pela Força colega Pestana
att
Izidorio Jr.


GOSTEI 0
Pestana_

Pestana_

08/09/2007

acho que no select não tem como fazer isso.

Depois de ter executado o select você armazena os valores do campo Obs em uma variavel do tipo String atravês de um Loop, não da certo?


flw.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

08/09/2007

acho que somente com stored procedure


GOSTEI 0
POSTAR