Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Controllo sequenza progressivi

1,636 views
Skip to first unread message

Pippo2000

unread,
Apr 4, 2006, 5:54:07 PM4/4/06
to
Ho una tabella con una decina di colonne.
Una di queste contiene un numero progressivo che non necessariamente parte
da un numero x che non è 1.
Devo controllare l'integrità della sequenzialità di questo progressivo
(numeric).
Come posso fare?

Esempio:

col1
10
11
12
13
14
16
17
18
21
22

Come risultato della query vorrei ottenere i numeri mancanti nel progressivo
(o i numeri che precedono i buchi)
15
19
20

E' possibile senza fare i salti mortali con SP o simili?Finora ho banalmente
importato tutto in Excel ed elaborato a mano, ma mi sono un pò stufato,
anche perchè le tabelle con i progressivi ne ho più di una.

Grazie in anticipo per le risposte.


giorgio rancati

unread,
Apr 4, 2006, 7:05:13 PM4/4/06
to
"Pippo2000" <djx@_fastwebnet_.it> ha scritto nel messaggio
news:2WBYf.50700$nz4....@tornado.fastwebnet.it...

> Ho una tabella con una decina di colonne.
> Una di queste contiene un numero progressivo che non necessariamente parte
> da un numero x che non è 1.
> Devo controllare l'integrità della sequenzialità di questo progressivo
> (numeric).
> Come posso fare?
[CUT]

Ciao Pippo2000,

prova così
----
--Creo una tabella di prova
Create table Tab1
(Id int)
GO

--Inserisco qualche dato
INSERT Tab1
Select 10 UNION ALL
Select 11 UNION ALL
Select 12 UNION ALL
Select 13 UNION ALL
Select 14 UNION ALL
Select 16 UNION ALL
Select 17 UNION ALL
Select 18 UNION ALL
Select 21 UNION ALL
Select 22
GO

--Lista buchi
SELECT T1.ID+1 AS Da,
(SELECT TOP 1 ID
FROM Tab1
WHERE ID>T1.ID+1
ORDER BY ID)-1 AS A
FROM (SELECT ID
FROM Tab1
UNION SELECT 0) AS T1 LEFT JOIN Tab1 AS T2 ON T1.ID+1=T2.ID
WHERE T2.ID IS NULL
ORDER BY T1.ID;
GO

--Pulizia
DROP TABLE Tab1
----

Risultato
Da A
----------- -----------
1 9
15 15
19 20
23 NULL


Ciao
--
Giorgio Rancati
[Office Access MVP]


Andrea Montanari

unread,
Apr 5, 2006, 4:40:03 AM4/5/06
to
salve,

Pippo2000 wrote:
> Ho una tabella con una decina di colonne.
> Una di queste contiene un numero progressivo che non necessariamente
> parte da un numero x che non è 1.
> Devo controllare l'integrità della sequenzialità di questo progressivo
> (numeric).
> Come posso fare?

oltre a quanto indicato da Giorgio, vedi anche tecniche quali
http://www.sqlservercentral.com/columnists/slasham/findinggapsinasequentialnumbersequence.asp
http://www.sqlserverfaq.com/controls/kbase/store/CodeLib/9.htm
saluti
--
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtm http://italy.mvps.org
DbaMgr2k ver 0.18.0 - DbaMgr ver 0.62.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
--------- remove DMO to reply


0 new messages