Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
nnogueira
Starting Member
18 Posts |
Posted - 2009-05-16 : 11:47:45
|
| I need find a way to get integer gaps and dup SequentialNumbers (Integers) per products(Nchar´s). Example: PNum SeqNum100 | 1100 | 2100 | 4100 | 5200 | 1200 | 2200 | 3In this case, missed number 3 for product 100.And i need find dupped SequentialNumbers Like: PNum SeqNum100 | 1100 | 2100 | 3100 | 3100 | 4200 | 1200 | 2200 | 3In this case, number 3 has two timesSomeome can help me ? |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-05-16 : 12:15:21
|
SELECT p.SeqNum, v.Number AS SeqNumFROM (SELECT PNum, MAX(SeqNum) AS SeqNum FROM Table1 GROUP BY PNum) AS pINNER JOIN master..spt_values AS v ON v.Type = 'P' AND Number BETWEEN 1 AND p.SeqNum LEFT JOIN Table1 AS t1 ON t1.PNum = p.PNum AND t1.SeqNum = v.NumberWHERE t1.PNum IS NULL E 12°55'05.63"N 56°04'39.26" |
 |
|
|
nnogueira
Starting Member
18 Posts |
Posted - 2009-05-16 : 12:58:37
|
quote: Originally posted by Peso SELECT p.SeqNum, v.Number AS SeqNumFROM (SELECT PNum, MAX(SeqNum) AS SeqNum FROM Table1 GROUP BY PNum) AS pINNER JOIN master..spt_values AS v ON v.Type = 'P' AND Number BETWEEN 1 AND p.SeqNum LEFT JOIN Table1 AS t1 ON t1.PNum = p.PNum AND t1.SeqNum = v.NumberWHERE t1.PNum IS NULL E 12°55'05.63"N 56°04'39.26"
Thanks Peso, it help me a lot! |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2009-05-17 : 03:38:27
|
| [code]CREATE TABLE #TALLY(Number INT, CONSTRAINT PK_Tally_ Number PRIMARY KEY CLUSTERED (Number))DECLARE @MaxLimit int,@Start intSELECT @MaxLimit=MAX(SeqNum),@Start=1FROM YourTableWHILE @Start <=@MaxLimitBEGININSERT INTO #TALLY(Number)SELECT @StartSET @Start=@Start+1ENDSELECT PNum,MAX(SeqNum) AS LimitINTO #MAXSEQFROM YourTableGROUP BY PNumSELECT m.PNum,m.NumberFROM(SELECT ms.PNum,t.NumberFROM #MAXSEQ msJOIN #TALLY tON t.Number BETWEEN 1 AND ms.Limit)mLEFT JOIN YourTable tblON tbl.PNum=m.PNumAND tbl.SeqNum=m.NumberGROUP BY m.PNum,m.NumberHAVING COUNT(tbl.PNum)<>1 [/code] |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-05-17 : 04:14:41
|
For the dupes cases, add a DISTINCT keyword to my suggestion. E 12°55'05.63"N 56°04'39.26" |
 |
|
|
|
|
|
|
|