Dúvida sobre [b]SELECT[/b]
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]
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
Curtidas 0
Respostas
Gandalf.nho
22/09/2004
Se não der pra fazer direto, tente montar uma procedure no banco de dados.
GOSTEI 0
Fsflorencio
22/09/2004
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
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
GOSTEI 0
Blbacelar
22/09/2004
Valeu pela dica , funcionou :D
GOSTEI 0
Blbacelar
22/09/2004
fsflorencio,
só mais uma coisa, tem como retornar o resultado em varias colunas,
dessa maneira q vc me passou ele retorna em linhas.
só mais uma coisa, tem como retornar o resultado em varias colunas,
dessa maneira q vc me passou ele retorna em linhas.
GOSTEI 0
Fsflorencio
22/09/2004
É 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.
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.
GOSTEI 0
Blbacelar
22/09/2004
consegui resolver , obrigado pela dica
GOSTEI 0