Pular para o conteúdo

Fóruns SQL e PL/SQL [RESOLVIDO] Ajuda query plzzz! [RESOLVIDO] Ajuda query plzzz!

#98002
fsitja
Participante

    [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;