19. juli 2006 - 15:19Der er
18 kommentarer og 1 løsning
increment for hver måned med 1 fra 1968 til 2047
Jeg har en tabel som indeholder nogle datoer fra 01-01-1968 til og med 30-12-2047 , det jeg ønsker er at oprette en ny kolonne kaldet monthId, som tæller 1 op for hver måned , dvs datointervallet 01-01-1968 til 31-01-1968 vil give monthid 1 og datointervallet 01-02-1968 til 29-02-1968 vil så give monthid 2 og så videre indtil den 30-12-2047 , så jeg har behov for noget sql(script) som jeg kan køre i en query som opdater monthId kolonnen.. nogen som har et bud.
Kunne du ikke lave noget med en fetch, som selecter hele din tabel. Imens du "fetch'ede" igennem, kunne du lave en DATEDIFF(m, X, Y), hvor X ville være din mindste dato, mens Y ville være den dato du er nået til i din fetch.
lorentsnv> Dit DATEPART vil jo lave flere monthid som giver det samme, fordi at 01-02-1968 giver 2, men det gør 01-02-2006 også. Tror bestemt han skal bruge DATEDIFF.....
lorentsnv> Vi er bestemt ikke uenige.. SET vil klart slå min fetch med flere længde rent ydelses mæssigt. Varmen gik simpelthen i hovedet på mig, jeg kunne ikke se skoven for bare træer :-)
Men husk lige at skrive DATEDIFF og ikke datepart i dit eksempel.. :) Look at your last post...
Nej, jeg har ikke fået hul igennem, med jeres forslag, det gav ikke 1....2...3... osv op til den sidste dato jeg har. den tæller 12 op for hvert år, dvs at monthId = 959 , i alle rækker, hvis jeg tager datoen 1968-01-01 til 2047-12-31
Bobber> Nu har jeg lige lavet min egen lille tabel og testet det vi er nået frem til. For mig virker det, så vi bliver nød til at se din SQL sætning, for at hjælpe dig.
DECLARE @StartDato DATETIME SET @StartDato = '1968-01-01'
SET MonthID = DATEDIFF(m, @StartDato, [DatoKolonne])
the_party_dog> Du har lavet det største bidrag til løsning, så jeg har oprættet et nyt spørgsmål under MS SQL (Points to the_party_dog (increment for hver måned med 1 fra 1968), hvor du får dine points.
Ja, sorry jeg skulle nok have delt dem mellem jer..... og ja jeg en glad mand.. :-) så kan jeg komme videre
Synes godt om
Ny brugerNybegynder
Din løsning...
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.