Avatar billede Morten Nybegynder
26. september 2004 - 21:05 Der er 3 kommentarer og
1 løsning

indsætte beregning

Hej

Jeg er lidt grøn mht. SQL så jeg ville gerne om nogen kunne hjælpe mig med følgende:

Jeg har en tabel med År, Måned, dage_i_mdr, Budget, Forecast

I en anden tabel skal jeg så have en række for hver måned som er akkumuleret dag for dag i måneden.
Jeg har derfor oprettet en tabel som ser ud som følgende

År Måned forecast1 forecast2 forecast3 osv.

Jeg vil nu høre om jeg via en DTS kan beregne de daglige (forecast1) med noget sql og indsætte dem i tabellen???

Jeg har forsøgt med følgende - men er vist på glatis:

    DECLARE @number int,
        @i int,
        @text varchar,
        @text1 varchar

    set @i = 1
    set @text = cast(@i as varchar)
    SET @number = ((SELECT nbrDays FROM dbo.budget_forecast)
            WHERE strYear = (SELECT (datepart(yy, GETDATE())-2000)+100))
            AND
            (strMonth = (SELECT datepart(mm, GETDATE())))

    set @text1 = ('forecast' + ', '+ @text)
    begin
    while @i <= @number
        update  dbo.DAY_BY_DAY
            set @text1 = (SELECT [New Sales Order Forecast] / nbrDays * @i)
            FROM dbo.budget_forecast
            WHERE strYear = (SELECT (datepart(yy, GETDATE())-2000)+100)
            AND
            strMonth = (SELECT datepart(mm, GETDATE()))

jeg har brugt @text1 til at skabe kolonnenavnet - men det ved jeg heller ikke om man kan - det var mest for at slippe for at skulle skrive det 30 gange - plus at jeg så kun fik indsat data i de felter som er aktuelle den måned (nogle har jo kun 30 andre flere og enkelt mindre)....

Håber nogen kan finde hoved og hale i ovenstående????
Avatar billede jannikmunk Nybegynder
26. september 2004 - 21:08 #1
Hvordan og hvor tit skal dette køres ?

Du kan lave det som trancact SQL og stoppe det ned i en Stored Procedure, hvis det er noget der skal afvikles jævnligt.
Avatar billede Morten Nybegynder
26. september 2004 - 21:11 #2
Det er noget som jævnligt skal køres - og når jeg har fået denne del på plads er det meningen (hvis det kan lade sig gøre) at brugerne via en hjemmeside ligger tallene ind og så opdateres tabellen auto...

Men det med at stoppe det i en Stored Proc. tror jeg nok jeg har fattet - problemet er at få ovenstående til at køre - jeg har afprøvet den i Query Analyser - men jeg tror ikke jeg har helt fat i syntaxen...????
Avatar billede veronica Nybegynder
28. september 2004 - 17:24 #3
> Jeg har en tabel med År, Måned, dage_i_mdr, Budget, Forecast

Hvad er der så galt med..

SELECT sum( [New Sales Order Forecast]) / sum(nbrDays),
    strYear, strMonth
FROM dbo.budget_forecast
GROUP BY
    strYear, strMonth

??
Avatar billede Morten Nybegynder
30. september 2004 - 08:34 #4
har fundet anden løsning - lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester