Clipper On Line • Ver Tópico - Quebra de sequencia

Quebra de sequencia

Discussão sobre SQL

Moderador: Moderadores

 

Quebra de sequencia

Mensagempor janio » 07 Mar 2017 17:24

Ola a todos,

Tenho uma tabela com numeros sequenciais e preciso saber se houve quebra nessa sequencia e quais numeros estao faltando, tipo:

1
2
3
5
6
7


Que Query poderia mim retonar informando que o numero 4 esta faltando na sequencia?
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quebra de sequencia

Mensagempor fladimir » 07 Mar 2017 18:08

Veja se te ajuda

select a.id -1 from tabela a.id <> 1 and not exists (select id from tabela b where b.id = (a.id-1) )
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Quebra de sequencia

Mensagempor janio » 07 Mar 2017 19:07

Cara, esses comandos sao tao loucos (pra mim) q nao estou nem sabendo montar aqui com os meus dados kkkkk

Vou passar os dados pra ver se consegue montar a query pra mim.

Tabela : a03ped
campo : numccf

preciso saber se ha quebra de sequencia nesse campo (numccf)
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quebra de sequencia

Mensagempor alxsts » 07 Mar 2017 19:27

Olá!

O artigo How to find missing values in a sequence with SQL é bem interessante, apesar de ser antigo.

(No exemplo do Fladimir falta a cláusula WHERE)

How to find missing values insequence with SQL
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Quebra de sequencia

Mensagempor fladimir » 07 Mar 2017 20:01

Exato Alexandre

Copiei e colei e passou desapercebido,

Agora pegando a necessidade do colega com o exemplo do Alexandre segue código de teste montado.

create table a03ped ( NumCCF int not null primary key );

insert into a03ped (NumCCF) values (1), (2), (3), (5), (6), (7);
   
select start, stop from (
  select m.NumCCF + 1 as start,
    (select min(NumCCF) - 1 from a03ped as x where x.NumCCF > m.NumCCF) as stop
  from a03ped as m
    left outer join a03ped as r on m.NumCCF = r.NumCCF - 1
  where r.NumCCF is null
) as x
where stop is not null;   
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Quebra de sequencia

Mensagempor janio » 07 Mar 2017 20:53

Eita lasqueira,

Isso tudo so pra saber que o 4 ta faltando? :P

kkk

Ver aqui no meu codigo o que acontece...
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quebra de sequencia

Mensagempor Poka » 08 Mar 2017 09:46

Olá

Como não vi como fazer direto em sql, tenho uma função, que resolve , veja se ajuda

stat func FverPulado(xtabela,xcampo)
   /*
    exemplo de chamada   
    nomeMatrizRetorno:=FverPulado( "cadcli","codigo")
          verifica se tem numeracao pulado na tabela
          retorna matriz com os numeros pulados
          fb_executa é a minha rotina para executar o str, veja a sua
          m_select ´e oretorno da minha funcao f_executa()
          uso strzero  e val , porque os meus codigo sao sempre completos , exe 000001
         
         */
         local xmin,xmax , m_pulados:={} , a

         Str:="select Min("+xcampo+"),Max( "+xcampo+") from "+xtabela+";"      // vefifico a faixa de pesquisa
         fb_executa()   // -é a minha rotina que executa o str  e retorna matriz m_select, verifique a sua
   xmin:=m_select[1,1]

   xmax:= m_select[1,2]
   for a:= val(xmin) to val(xmax)
      // strzero, porque só trablho com numeros completos do tipo "00001"
      str:="select first 1 "+xcampo+" from "+xtabela + " where "+xcampo+" =  '"+ strzero(a,len(xmin)) +"';" 
      fb_executa()
      if empty( m_select)   
         aadd(m_pulados,strzero(a,len(xmin) ) )
      endif
   next   
   msginfo( str(len(m_pulados),5) +" registros pulados")
retu m_pulados         


Poka
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 509
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 23 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro