Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

disordia

Como realizar o select com count e somar

Mensagens Recomendadas

disordia

A questão é, na escola existe varias turmas com alunos de diferentes empresas, dado o um determinado período e seleção de uma ou mais turmas, preciso realizar um SELECT para trazer quantidade total de alunos registrados na escola, agrupando por turma e empresa. Á logica é, se for os alunos forem das empresas -> ('X'  e  'Y'), empresas -> ('D' e 'F') somar a quantidade de alunos destas duas empresas, para obter um resultado único, se for alunos da empresa 'P' trazer quantidade  total de alunos somente desta empresa, e por ultimo, se forem alunos de qualquer outra empresa, somar a quantidades de alunos total destas empresas, para obter também um único resultado, tudo isto agrupado por turma e empresa.

No momento só conseguir fazer um SELECT que trás a quantidade total de alunos  agrupados por turma e empresa. Porem não sei como realizar á somar das quantidade total dos alunos das empresas ('X' e 'Y'), empresas -> ('D' e 'F'), para obter um resultado único delas.

SELECT COUNT(*) AS 'quant_total', empresa, turma FROM alunos WHERE data_matricula >= '2015-03-01' AND data_matricula <= '2015-04-01' AND substr(turma, 1,4) IN ('AAAA') AND situacao = 'AT' GROUP BY empresa, turma

Resultado:

quant_total |   empresa  |   turma

     1      |   X    | AAAA-01
     4      |   X    | AAAA-02 
     4      |   X    | AAAA-03 
     3      |   X    | AAAA-04 
     1      |   F    | AAAA-01 
    16     |   D    | AAAA-01 
    33     |   D    | AAAA-05 
    28     |   D    | AAAA-08 
    18     |   D    | AAAA-04 
    12     |   P    | AAAA-01 
     1      |   P    | AAAA-05 
    11     |   P    | AAAA-02 
    14     |   P    | AAAA-03 
    23     |   P    | AAAA-06 
     1      |   P    | AAAA-07 
     3      |   Y    | AAAA-01 
     5      |   Y    | AAAA-02 
     4      |   Y    | AAAA-03 
     5      |   Y    | AAAA-04 
     1      |   O    | AAAA-02
     7      |   V     | AAAA-02

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jsWizard

é melhor dares um exemplo dos dados que tens.. e do resultado que queres obter.. assim se calhar já nos entendemos.. porque realmente não se entende bem o que queres :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.