Tja de titel zegt niet veel, ik wist niks beters te verzinnen 
Het probleem is als volgt:
Ik heb een database table (tblUser) met enkele duizenden users. Een kolom heeft een "credit" waarde waar normaal waarden in staan van 1 tot 50, het kan ook 60 of zelfs 200 of meer zijn maar dat komt niet veel voor (iedere credit wordt namelijk gekocht, men heeft over het algemeen niet honderden credits).
Nu heeft een werknemer bij de klant van ons alle waarden x 1000 gedaan om zo het proces waarvoor de credits gebruikt worden gratis te maken voor een maand. Nu is die maand voorbij en moeten we (ik) de waarden weer terug converteren.
Voorbeeld reeks: 22999, 19000, 2000, 999, 6000, 1997, etc.
22999 delen door 1000 is 22.999, voeg een "CEILING" toe aan de query en je krijgt 23. Zou je zeggen.. maar mijn MSSQL Enterprise Manager geeft aan dat dit 22 is.
Wat er moet gebeuren: het bestaande getal ophogen naar het eerste duizendtal, deze waarde door 1000 delen en die waarden opslaan in de database.
Ik krijg het niet voorelkaar met mijn huidige kennis.. De database blijft "vreemde" waarden terug geven:
29939 -> 29 (zou moeten zijn: 30)
22999 -> 22 (zou moeten zijn: 23)
18999 -> 18 (zou moeten zijn: 19)
1998 -> 1 (zou moeten zijn: 2)
999 -> 0 (zou moeten zijn: 1)
En het is niet consistent (anders zou ik gewoon +1 kunnen doen ofzo
), want:
24000 -> 24 (is goed)
22000 -> 22 (ook goed)
20000 -> 20 (ook ok)
Kan iemand me vertellen hoe ik dit nu wel goed moet doen? De kolom is een INT met lengte "4". Converteren naar double leek me een goed plan maarja, dan blijkt een double niet te bestaan
Moet ik een decimal gebruiken? Een float?
Het probleem is als volgt:
Ik heb een database table (tblUser) met enkele duizenden users. Een kolom heeft een "credit" waarde waar normaal waarden in staan van 1 tot 50, het kan ook 60 of zelfs 200 of meer zijn maar dat komt niet veel voor (iedere credit wordt namelijk gekocht, men heeft over het algemeen niet honderden credits).
Nu heeft een werknemer bij de klant van ons alle waarden x 1000 gedaan om zo het proces waarvoor de credits gebruikt worden gratis te maken voor een maand. Nu is die maand voorbij en moeten we (ik) de waarden weer terug converteren.
Voorbeeld reeks: 22999, 19000, 2000, 999, 6000, 1997, etc.
22999 delen door 1000 is 22.999, voeg een "CEILING" toe aan de query en je krijgt 23. Zou je zeggen.. maar mijn MSSQL Enterprise Manager geeft aan dat dit 22 is.
Wat er moet gebeuren: het bestaande getal ophogen naar het eerste duizendtal, deze waarde door 1000 delen en die waarden opslaan in de database.
Ik krijg het niet voorelkaar met mijn huidige kennis.. De database blijft "vreemde" waarden terug geven:
29939 -> 29 (zou moeten zijn: 30)
22999 -> 22 (zou moeten zijn: 23)
18999 -> 18 (zou moeten zijn: 19)
1998 -> 1 (zou moeten zijn: 2)
999 -> 0 (zou moeten zijn: 1)
En het is niet consistent (anders zou ik gewoon +1 kunnen doen ofzo
24000 -> 24 (is goed)
22000 -> 22 (ook goed)
20000 -> 20 (ook ok)
Kan iemand me vertellen hoe ik dit nu wel goed moet doen? De kolom is een INT met lengte "4". Converteren naar double leek me een goed plan maarja, dan blijkt een double niet te bestaan