› 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
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>