Como Somar um campo do tipo Varchar
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?
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
Curtidas 0
Respostas
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.
CAST(obs as integer) + campo
verifique se funciona,
flw.
GOSTEI 0
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
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_
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
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.
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_
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.
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
08/09/2007
acho que somente com stored procedure
GOSTEI 0