Select em SQL - Buscar intervalos [RESOLVIDO]

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

SELECT MIN(NR) AS NRINICIO,
             MAX(NR) AS NRFIM,  
            DATA 

FROM TABELA

GROUP BY DATA

ORDER BY DATA

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…

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

Cara, tenta isto aqui:

select dt, min(numero), max(numero)
from
    (
    select 
        t1.*,
        (select min( numero ) from tabela t2 where t2.numero > t1.numero and t2.dt != t1.dt) ultimo 
    from 
        tabela t1   
    )
group by 
    dt, ultimo


order by
    dt

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…

[quote=leopoldof]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…[/quote]

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.

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…