Fórum Dúvida sobre [b]SELECT[/b] #46892

22/09/2004

0

Eu quero selecionar a soma de uma coluna, mas ela teria q aparecer varias vezes dependendo do tipo de hora

Ex:
Funcionario [color=blue:5e714a0c62]Hora Normal[/color:5e714a0c62] [color=green:5e714a0c62]Hora Extra[/color:5e714a0c62] [color=darkred:5e714a0c62]Hora Adicional[/color:5e714a0c62]

João da Silva [color=blue:5e714a0c62]150,00[/color:5e714a0c62] [color=green:5e714a0c62]225,35 [/color:5e714a0c62] [color=darkred:5e714a0c62]50,52[/color:5e714a0c62]

Esse select funciona somente para 1 tipo de hora. Tem como fazer para aparecer os outros tipos de hora também?

[color=red:5e714a0c62][i:5e714a0c62][b:5e714a0c62]select sum(HORTOTAL) from cadservicosccapont where idcadtiphoras = ´Hora Normal´[/b:5e714a0c62][/i:5e714a0c62][/color:5e714a0c62]


Blbacelar

Blbacelar

Responder

Posts

22/09/2004

Gandalf.nho

Se não der pra fazer direto, tente montar uma procedure no banco de dados.


Responder

Gostei + 0

22/09/2004

Fsflorencio

Assim retorna 3 registros:
select sum(HORTOTAL), ´N´ Tipo from cadservicosccapont where idcadtiphoras = ´Hora Normal´

union

select sum(HORTOTAL), ´E´ Tipo from cadservicosccapont where idcadtiphoras = ´Hora Extra´

union

select sum(HORTOTAL), ´A´ Tipo from cadservicosccapont where idcadtiphoras = ´Hora Adicional´

vc pode fazer + ou - assim para retornar um registro apenas:

select funcionario.codigo, funcionario.nome,
(select sum(HORTOTAL)
from cadservicosccapont
where idcadtiphoras = ´Hora Normal´ and
codigo_funcionario = funcionario.codigo) Normal,
(select sum(HORTOTAL)
from cadservicosccapont
where idcadtiphoras = ´Hora Extra´ and
codigo_funcionario = funcionario.codigo) Extra,
(select sum(HORTOTAL)
from cadservicosccapont
where idcadtiphoras = ´Hora Adicional´ and
codigo_funcionario = funcionario.codigo) Adicional
from funcionarios where codigo = 99


Responder

Gostei + 0

22/09/2004

Blbacelar

Valeu pela dica , funcionou :D


Responder

Gostei + 0

22/09/2004

Blbacelar

fsflorencio,

só mais uma coisa, tem como retornar o resultado em varias colunas,
dessa maneira q vc me passou ele retorna em linhas.


Responder

Gostei + 0

22/09/2004

Fsflorencio

É aquela segunda opção que tinha te passado:

select funcionario.codigo, funcionario.nome,
(select sum(HORTOTAL)
from cadservicosccapont
where idcadtiphoras = ´Hora Normal´ and
codigo_funcionario = funcionario.codigo) Normal,
(select sum(HORTOTAL)
from cadservicosccapont
where idcadtiphoras = ´Hora Extra´ and
codigo_funcionario = funcionario.codigo) Extra,
(select sum(HORTOTAL)
from cadservicosccapont
where idcadtiphoras = ´Hora Adicional´ and
codigo_funcionario = funcionario.codigo) Adicional
from funcionarios where codigo = 99

Não tenho a estrutura de suas tabelas, então supunha que fosse mais ou menos o que escreví.
Se vc quiser me enviar as estruturas (tabela de funcionários e de horas) farei com prazer.


Responder

Gostei + 0

24/09/2004

Blbacelar

consegui resolver , obrigado pela dica


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar