Select em SQL - Buscar intervalos [RESOLVIDO]  XML
Índice dos Fóruns » Outras Linguagens
Autor Mensagem
leopoldof
GUJ Master

Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline

Olá...
Tenho o seguinte problema....

Suponhamos (Somente um exemplo, mas que encaixa no meu problema) que tenho uma tabela....

TABELA
Nr Data
1 10-10-2011
2 10-10-2011
3 11-10-2011
4 10-10-2011



O que presciso... é pegar o intervalo de nr por data.... e não pode haver intersecção entre os intervalos...

o resultado final tem que ficar assim
Data Nr-inicio Nr-Fim
10-10-2011 1 2
10-10-2011 4 4
11-10-2011 3 3



então formulei um select... mas ele não faz os intervalos direito...não sei o que tá errado...
ele retorna assim

Data Nr-inicio Nr-Fim
10-10-2011 1 4
11-10-2011 3 3

meu select ficou assim




This message was edited 2 times. Last update was at 27/10/2011 16:26:28

lucas_carvalho100
JavaEvangelist
[Avatar]

Membro desde: 18/03/2010 08:23:16
Mensagens: 322
Offline

Lendo seu problema, não me vem nada na cabeça para resolver com um select, acho que você pode fazer um procedimento e montar uma tabela temporária do jeito que você quer...

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."
Albert Einstein
[WWW]
leopoldof
GUJ Master

Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline

Creio que a solução seria a mesma para localizar se há ou não intervalos entre duas sequencias de números
AbelBueno
Virtual Machine Man

Membro desde: 04/08/2010 09:37:57
Mensagens: 543
Offline

Cara, tenta isto aqui:

leopoldof
GUJ Master

Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline

Beleza...não sei como..kkkkkkkkkkk
.mas esse seu select funcionou ....crei uma tabelinha e simulei o meu problema...e funcionou...
agora vou tentar passar isso para meu select real.... só quero ver.... mas vamos lá....obrigado... depois eu posto aqui
se consegui ou não..
AbelBueno
Virtual Machine Man

Membro desde: 04/08/2010 09:37:57
Mensagens: 543
Offline

leopoldof wrote:Beleza...não sei como..kkkkkkkkkkk
.mas esse seu select funcionou ....crei uma tabelinha e simulei o meu problema...e funcionou...
agora vou tentar passar isso para meu select real.... só quero ver.... mas vamos lá....obrigado... depois eu posto aqui
se consegui ou não..


Eu não sou muito bom para explicar select, mas basicamente é o seguinte:

Seu grupo é feito de números na mesma data, num intervalo contíguo de números..

Aquele subselect pega o primeiro número ( "min( numero )" ) a partir do registro atual com uma data diferente.
Esse primeiro número será igual para todos os números de um determinado grupo.
No fim é só agrupar por data e por esse primeiro número do próximo grupo (que na pressa coloquei como ultimo no select, um péssimo alias)

Enfim.. acho que para entender o melhor é rodar em partes e ver o que está acontecendo.
leopoldof
GUJ Master

Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline

KKKK...
Muito bom....
Rodou certinho aqui a sua idéia.... passei o maior tempão pesquisando e tentando montar um select...
Usando o Having..... modificando o group by.... usando agregação...e nada....

seguindo a sua idéia... funcionou certinho a separação....

agora só vou ajeitar os totalizadores do select, pois tenho dentro do select dois sub-selects...

Mas creio se se eu seguir a mesma idéia do from.... vai funcionar também...


Obrigado....
 
Índice dos Fóruns » Outras Linguagens
Ir para:   
Powered by JForum 2.1.8 © JForum Team