Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: HeXmiT en 21 Abril 2011, 20:21 pm



Título: "Comparación" entre días [Solucionado]
Publicado por: HeXmiT en 21 Abril 2011, 20:21 pm
Hola a todos, tengo el siguiente problema y no se muy bien cómo abordarlo.

Tengo una tabla que entre otros datos tiene:

--> Diasemana ( Lunes, Martes, ... )
--> Idactividad ( PK )
--> idcasa (FK)

Bien, quiero obtener de entre esas filas, aquellas cuyo día de la semana es sólo 1. Es decir, que se organizan 1 vez a la semana, pero estas pueden estar organizadas en varias casas de forma que:

A1 -- C1 -- Lunes
A1 -- C2 -- Martes

A2 --C1 -- Lunes
A2 --C2 -- Lunes

Lo que yo querría obtener sería A2 pues se organiza sólo los Lunes.

He probado haciendo una Count(diasemana)=1 pero esto obviametne no es correcto, pues solo funcionaria para aquellas que solo se organizan en 1 casa y 1 sola vez.

¿Alguien podría indicarme, cómo comparar o filtrar esto?

PD: Uso oracle 10g / expres

--------------------------------------------------------------------------------------------------
Lo he solucionado de la siguiente manera:

Código
  1. SELECT IDTIPOAC
  2. FROM ACTIVIDAD
  3. GROUP BY IDTIPOAC
  4. HAVING COUNT(DISTINCT(DIASEMANA)) = 1

De forma que: La cuenta de días distintos no podrá ser superior a 1 pues eso indicaría que hay más de 1 día y que no son iguales.