Um select diferente

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pc_delphi
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 128
Registrado em: Qui, 29 Mai 2008 6:44 pm
Localização: São Paulo
Tudo posso, nAquel que me fortalece
Filipenses 4:13

Tenho uma tabela com 800 linhas. Serão inseridas mais 5.000 nela. Tenho um campo que guarda um registro assim: YYYYMM. Eu gostaria de fazer um select, que me trouxesse um valor tipo valor = 1, para todos os registros assim:
201104. Se houver registros do tipo:
201104 e 201103, ele traz o valor = 2. Se houver
201104 ,201103,201102,201101, aí ele traz o valor = 4 e assim sucessivamente. Como eu faço isso na query?
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

você quer inserir num campo da tabela o numero de periodos de outra tabela???
Existe um padrão separador dos períodos???
"201104 e 201103" esta com "e" enquanto "201104 ,201103,201102,201101" esta com "," separando.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

É o q o nosso amigo Noctífero comentou ou, você precisa de um contador das datas "distinct" ?
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Não sei se ajuda a discussão, mas o que você pretende seria algo como no exemplo abaixo?

Selecionar tudo

CREATE TABLE TABELA (CAMPO_YYYYMM NUMBER(6) NULL);
 
INSERT INTO TABELA VALUES (200410); 
INSERT INTO TABELA VALUES (200411);
INSERT INTO TABELA VALUES (200501);
INSERT INTO TABELA VALUES (200411);
INSERT INTO TABELA VALUES (200401);
COMMIT;

SELECT SUBSTR(TO_CHAR(CAMPO_YYYYMM),1,4) AS YYYY,
       COUNT(*) AS VALOR
 FROM  (SELECT DISTINCT
               CAMPO_YYYYMM
          FROM TABELA)
 GROUP BY SUBSTR(CAMPO_YYYYMM,1,4)
ORDER BY 1,2;
Mas concordo com o Noctifero e o Trevisolli . Seria legal você passar maiores informações sobre o seu problema.

Abraços,

Sergio Coutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes