Pular para o conteúdo

Fóruns SQL e PL/SQL Dúvida em SQL para verificação de condição Dúvida em SQL para verificação de condição

#91865
fsitja
Participante

    Se entendi bem sua necessidade, acho que isso abaixo atende:


    SQL> CREATE TABLE x (
    2 cod_fiscalizacao NUMBER(5),
    3 cod_programa_trabalho NUMBER(6),
    4 se_especifico_objeto_fiscaliza char(1)
    5 NOT NULL CHECK (se_especifico_objeto_fiscaliza IN ('S', 'N')),
    6 se_principal char(1)
    7 NOT NULL CHECK (se_principal IN ('S', 'N')),
    8 CONSTRAINT pk_x
    9 PRIMARY KEY (cod_fiscalizacao, cod_programa_trabalho));

    Table created

    SQL>
    SQL> BEGIN
    2 INSERT INTO x VALUES (1, 1, 'S', 'S');
    3 INSERT INTO x VALUES (1, 2, 'N', 'S');
    4 INSERT INTO x VALUES (1, 3, 'N', 'N');
    5 INSERT INTO x VALUES (1, 4, 'N', 'S');
    6 INSERT INTO x VALUES (1, 5, 'S', 'N');
    7 --
    8 INSERT INTO x VALUES (2, 6, 'S', 'S');
    9 INSERT INTO x VALUES (3, 6, 'N', 'S');
    10 INSERT INTO x VALUES (4, 6, 'N', 'N');
    11 INSERT INTO x VALUES (5, 6, 'N', 'S');
    12 INSERT INTO x VALUES (6, 6, 'S', 'N');
    13 END;
    14 /

    PL/SQL procedure successfully completed

    SQL> commit;

    Commit complete

    SQL>
    SQL> select x.cod_fiscalizacao,
    2 x.se_principal,
    3 count() qtd_principal
    4 from x
    5 where x.se_principal = 'S'
    6 group by x.cod_fiscalizacao,
    7 x.se_principal
    8 having count(
    ) > 1
    9 /

    COD_FISCALIZACAO SE_PRINCIPAL QTD_PRINCIPAL


               1 S                        3
    

    SQL>
    SQL> select x.cod_fiscalizacao,
    2 x.se_especifico_objeto_fiscaliza,
    3 count() qtd_esp_obj_fisc
    4 from x
    5 where x.se_especifico_objeto_fiscaliza = 'S'
    6 group by x.cod_fiscalizacao,
    7 x.se_especifico_objeto_fiscaliza
    8 having count(
    ) > 1
    9 /

    COD_FISCALIZACAO SE_ESPECIFICO_OBJETO_FISCALIZA QTD_ESP_OBJ_FISC


               1 S                                             2
    

    SQL>