› Fóruns › SQL e PL/SQL › [RESOLVIDO] Ajuda query plzzz! › [RESOLVIDO] Ajuda query plzzz!
[quote=”luan”:nw9wpa60]Valeu Thunder_Catz muito obrigado pelas explicações,
mas no meu caso oque acontece é que eu necessito da clausura having count() pelo seguinte, eu preciso exibir os dias nas agendas apenas se tiverem disponiveis horários para todos códigos tuss:
H.IDTUSS IN (2826,78).. Por isso uso having count() > (N -1)
Vlw abs[/quote]
O que quer dizer o N-1?
N é o número de IDTUSS diferentes que você selecionou?
Se é isso talvez isso ajude a remover o 1 hardcoded:
SELECT idagendadado, dtagenda
FROM (SELECT b.idagendadado,
a.dtagenda,
count(*) over (partition by a.dtagenda) cnt
count(distinct h.idtuss) over () cnt_idtuss
FROM agenda_detail a
JOIN agenda_dado b ON (a.idagendadado = b.idagendadado)
JOIN agenda_sala c ON (b.idsala = c.idsala)
JOIN agenda_dado_aux h ON (b.idagendadado = h.idagendadado)
WHERE a.flag = 'DISPONIVEL'
AND a.status = 'ATIVADO'
AND b.flag = 'PRODUCAO'
AND b.status = 'ATIVADO'
AND h.idtuss IN (2826, 78)
GROUP BY b.idagendadado, a.dtagenda)
WHERE cnt > cnt_idtuss - 1
ORDER BY dtagenda;