Agrupando linhas semelhantes.

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
diegosaldanha
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Ter, 30 Set 2008 8:02 am
Localização: Taquara-RS

Boa noite!

Tenho uma tabela que esta com a seguinte estrutura:

HORARIO TURMA SEG TER QUA QUI SEX
07:00 TURMA1 X X X X X
07:00 TURMA2 X X X X
07:00 TURMA2 X
10:00 TURMA1 X X
10:00 TURMA1 X
10:00 TURMA2 X X X X
10:00 TURMA2 X

Gostaria de obter através do select, os horários e dias da semana de cada turma, ficando +/- assim:

HORARIO TURMA SEG TER QUA QUI SEX
07:00 TURMA1 X X X X X
07:00 TURMA2 X X X X X
10:00 TURMA1 X X X
10:00 TURMA2 X X X X X

Não consegui usar o distinct, pois os dias marcados não são iguais em todas as linhas e também não consegui usando o group by HORARIO...

oracle.jpg
Alguma idéia?
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Uma idéia seria SOMAR. Você pode agrupar por HORARIO e TURMA.
Então SOMA cada dia da SEMANA ( onde está preenchido trata como 1, os que não como 0, podes usar um DECODE ou um CASE).
Após isso ficará algo como:
HORARIO TURMA SEG TER QUA QUI SEX
07:00 TURMA1 1 1 1 1 1
07:00 TURMA2 1 1 1 1 1
10:00 TURMA1 0 0 1 1 1
10:00 TURMA2 1 1 1 1 1
Caso a soma dê maior que 1, pode usar a função "SIGN" para deixar como 1.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes