SQL-query: SELECT AllData_corr.IDKode, Format([AllData_corr]![Dato],"yyyy-mm-dd hh") AS Dato, Sum(AllData_corr.Forbrug) AS Forbrug FROM AllData_corr GROUP BY AllData_corr.IDKode, Format([AllData_corr]![Dato],"yyyy-mm-dd hh");
Men jeg vil gerne hvis min SQL-query kan skrive dato'en til venstre også hvert enkelt IDKode i hver kolonne, som så summere forbruget for hver time.
Og derefter printe det til excel (dette tror jeg, jeg har løst).
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
Slettet bruger
13. februar 2015 - 16:44#1
TRANSFORM Nz(Sum([AllData_Corr]![Forbrug]),0) AS Forbrug SELECT Format([AllData_corr]![Dato],"yyyy-mm-dd") AS Dato, Format([AllData_corr]![Dato],"hh") AS [Time] FROM AllData_corr GROUP BY Format([AllData_corr]![Dato],"yyyy-mm-dd"), Format([AllData_corr]![Dato],"hh") ORDER BY Format([AllData_corr]![Dato],"yyyy-mm-dd"), Format([AllData_corr]![Dato],"hh") PIVOT AllData_corr.IDKode In (49786,51468,52609);
Kolonnerne er ikke dynamiske, så hvis du får flere IDKoder, så skal du tilføje dem manuelt til forespørgslen.
Man kan lave det dynamisk, men det er besværligt!~)
Jeg har nemlig omkring 30 IDkoder, som over tid (2 år) også godt kan ændre sig lidt, så jeg ville gerne være sikker på at jeg har alt med når jeg indhenter data'erne til Excel hver gang.
Alternativt skal jeg lave et udtræk hvergang af ID'erne også sammenligne med sidste gang :-(
Kan du desuden give en forklaring af hvad det er du gør i ovenstående SQL query? Det kunne nok godt hjælpe mig en del ift. fremtiden :-)
Alternativt kunne jeg måske linke de IDkoder der skal hentes ind til nogle celler i Excel? Via noget Worksheet.Range("B2:H2").value?
Kunne man gøre ovenstående, altså flette det ind i SQL-sætningen?
Synes godt om
Slettet bruger
15. februar 2015 - 17:05#4
Hej, jeg har haft forrygende travlt denne weekend og nu starter en ny fuld uge!~)
Jeg ville nok bruge VBA til først at opdatere forespørgslen med kolonner ved at loope igennem de idkoder, som er i datasættet.
Herefter kan man sende output til Excel.
Indtil videre kan du bruge den forespørgsel, som skal opdateres manuelt. Hvis jeg får tid i løbet af ugen og du ikke har fået hjælp af andre, så skal jeg se om jeg kan have et kig på det!~)
strSQL = "TRANSFORM Iif(Sum([AllData]![Forbrug]) is null,0,Sum([AllData]![Forbrug]) / 4) AS Forbrug " & _ "SELECT Format([AllData]![Dato],'yyyy-mm-dd') AS Dato, Format([AllData]![Dato],'hh') AS [Time] " & _ "FROM AllData " & _ "GROUP BY Format([AllData]![Dato],'yyyy-mm-dd'), Format([AllData]![Dato],'hh') " & _ "ORDER BY Format([AllData]![Dato],'yyyy-mm-dd'), Format([AllData]![Dato],'hh') " & _ "PIVOT AllData.IDkode In (52638,52647,51568,51155,53150,51150,51698,49517,8137,49605,53125,49560,53506,52617)"
Jeg ville dog gerne hvis den selv kunne slå op i en række lige over hvor den skal sætte tallene ind, hvilket ID det er den skal hente data for.
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.