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.
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]
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