Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Gomes Mendes

condicionando um agrupamento

Recommended Posts

Fala aí galera, beleza?

Faz algumas semanas que venho tentando descobrir esse select, mas nao consigo monta-lo de jeito nenhum, entao como estou desesperado resolvi pedir ajuda aos universitários!

 

Seguinte... Tenho uma tabela "eventos" que segue essa estrutura:

 

eventos
----------
cod_usuario
data_evento
dia_semana
..... (mais uns 50 campos)

 

para cada cod_usuario, tenho 7 registros de eventos obrigatorios, um para cada dia_semana (dia_semana = 0, 1, 2...7), com o campo data_evento vazio.

Agora, posso ter também um ou outro registro aonde o dia_semana virá nulo e a data_evento vira preenchida (no máximo um evento por data_evento).

 

Agora a treta:

Preciso elaborar um select que me retorne todos os eventos mas APENAS UM evento por cod_usuario, sendo que se a data_evento estiver preenchida e for igual à que usei de comparaçao, esse deverá ser o registro retornado. Caso contrário, o registro retornado deverá ser registro cujo dia_semana é igual ao dia_semana que usei de comparação.

 

Será que alguma alma vai pelo menos me dar uma luz??

 

PS: Aceito sugestoes de reestruturação de banco de dados, caso nao seja a maneira mais eficiente de resolver o problema!

Compartilhar este post


Link para o post
Compartilhar em outros sites
... Preciso elaborar um select que me retorne todos os eventos mas APENAS UM evento por cod_usuario, sendo que se a data_evento estiver preenchida e for igual à que usei de comparaçao, esse deverá ser o registro retornado. Caso contrário, o registro retornado deverá ser registro cujo dia_semana é igual ao dia_semana que usei de comparação. ...

 

Pelo que entendi :

 

select *
from eventos
where (diadasenama = dayofweek(:data))
      or
     (data_evento = :data)

 

Sendo :data um paramêtro de data.

Check também o retorno de dayofweek.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.