Fórum Ajuda em um Select #474709
01/04/2014
0
Pessoal eu sou novo em programação e ainda tenho muitas duvidas e estou com um problema em um SQL para gerar um relatório.
Vou explicar o que está ocorrendo
eu tenho uma tabela função (o que a pessoa faz) chamada gsaclb003, tenho uma tabela clube chamada gsaclb003
e por fim a tabela associado gsaclb004, cada associado deve ter uma função e pertencer a um clube eu preciso do seguinte
um select que me traga agrupado por clube e somado as funções cada uma em uma coluna
Clube Função 1 Função 2 Função 3 Total
1- Lions Clube 10 5 5 20
2- TTC Clube 12 8 3 23
estou usando o select abaixo só que ele me retorna somando as funções em todos os clubes, exemplo se o clube um tem apenas 1 associado com aquela função mas no clube 2 tem 8 associados com aquela função ele traz tanto no clube um como no clube 2, a contagem de 9 pessoas com aquela função
select descricaoclub,
(select count(associadofunc) from gsaclb004 where associadofunc = 1 ) as cl ,
(select count(associadofunc) from gsaclb004 where associadofunc = 2 ) as cl
from gsaclb004, gsaclb002, gsaclb003
where associadoclub = idclube
and associadofunc = idfuncao
group by descricaoclub
como posso fazer para mudar isso?
Vou explicar o que está ocorrendo
eu tenho uma tabela função (o que a pessoa faz) chamada gsaclb003, tenho uma tabela clube chamada gsaclb003
e por fim a tabela associado gsaclb004, cada associado deve ter uma função e pertencer a um clube eu preciso do seguinte
um select que me traga agrupado por clube e somado as funções cada uma em uma coluna
Clube Função 1 Função 2 Função 3 Total
1- Lions Clube 10 5 5 20
2- TTC Clube 12 8 3 23
estou usando o select abaixo só que ele me retorna somando as funções em todos os clubes, exemplo se o clube um tem apenas 1 associado com aquela função mas no clube 2 tem 8 associados com aquela função ele traz tanto no clube um como no clube 2, a contagem de 9 pessoas com aquela função
select descricaoclub,
(select count(associadofunc) from gsaclb004 where associadofunc = 1 ) as cl ,
(select count(associadofunc) from gsaclb004 where associadofunc = 2 ) as cl
from gsaclb004, gsaclb002, gsaclb003
where associadoclub = idclube
and associadofunc = idfuncao
group by descricaoclub
como posso fazer para mudar isso?
Thales Benegas
Curtir tópico
+ 0
Responder
Posts
01/04/2014
Bruno Leandro
Quanto tempo :)
Tenta assim
select descricaoclub,
(select count(x.associadofunc) from gsaclb004 x where x.associadofunc = 1 and x.associadoclub = gsaclb004.idclube ) as cl1 ,
(select count(y.associadofunc) from gsaclb004 y where y.associadofunc = 2 and y.associadoclub = gsaclb004.idclube ) as cl2
from gsaclb004, gsaclb002, gsaclb003
where associadoclub = idclube
and associadofunc = idfuncao
group by descricaoclub
qualquer coisa manda um email eu te ajudo
Tenta assim
select descricaoclub,
(select count(x.associadofunc) from gsaclb004 x where x.associadofunc = 1 and x.associadoclub = gsaclb004.idclube ) as cl1 ,
(select count(y.associadofunc) from gsaclb004 y where y.associadofunc = 2 and y.associadoclub = gsaclb004.idclube ) as cl2
from gsaclb004, gsaclb002, gsaclb003
where associadoclub = idclube
and associadofunc = idfuncao
group by descricaoclub
qualquer coisa manda um email eu te ajudo
Responder
Gostei + 0
02/04/2014
Thales Benegas
Valeu Bruno, deu certo aqui....Valeu pela ajuda da próxima mando direto no seu e-mail rsrs
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)