Jeg taster en masse oplysninger i forbindelse med kvalitetskontrol og skal fra nytår give hver ordre et batch nr.
Jeg er doven og gider ikke forsøge at huske det nummer derfor vil jeg gerne have det lavet automatisk. Formatet skal så være 09 for året og 5 cifre for løbende nummer.
Jeg tænkte at det var nemmest at lave SQL-serveren lave det nummer istedet for at skulle læse i tabellen lægge 1 til og gemme hele posten.
Hvad med at have 2 kolonner. En identity kolonne som automatisk inkrementerer med 1 når der indsættes nye rows, og en kolonne som indeholder årstallet. Så kan du altid sammensætte disse kolonner i en query, hvis du skal bruge et formateret batch-nr.
Det er nok smart at have en identity som primærnøgle. Jeg har netop brugt Åbergs løsning hvor jeg så laver query til et view der formaterer det sådan som jeg gerne vil.
Dette giver mig det nummer jeg har brug for : '0' + CONVERT(varchar(10), DATEPART(year, Dato_for_kontrol) - 2000) + '-' + CONVERT(varchar(10), Id) AS Batchnr
Jeg bruger en dato og et Id der automatisk oprettes i tabellen eks.: 09-2356
Er du opmærksom på at: * sortering efter dette nummer og sortering efter år,batchnr giver forskellig resultat fordi der er variabel længde på batchnr delen * at formatet ændrer sig om 1 år og 3 dage ?
Arne_v: Jeg er klar over at det vil give mig hovedbrud når der er kommet 8000 batch mere ind i systemet men det er ikke relevant at sorterer på år eller batch...for nu :-) Batch 1 kom 16-03-2006 og 2061 d. 21-12-2008 så jeg har noget tid til at finde en løsning. Jeg ved at formatet ændre sig men jeg har nu 1 år til at lave en funktion der vælger formateringen efter om året er 08, 09 eller 10 for at undgå det kommer til at hedde 00.
Dette batch-system skulle være klar til brug d. 1-1-09 så må jeg redde mig ud af problemerne med tiden.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.