18. oktober 2010 - 18:06Der er
5 kommentarer og 1 løsning
Udtræk tabel med omsætning
Hej,
Jeg vil gerne kunne sammenligne salg pr. måned i min shop for i år op imod sidste år.
Jeg skal have lavet en simpel tabel med år hen og måneder ned i asp.
2009 2010 Januar 0 600 Februar 450 799 Marts 530 899 etc.
Jeg har lavet en sql, hvor jeg får omsætningen pr. måned
Sql = "SELECT Year(OrderTime) AS OrderYear, Month(OrderTime) AS Ordermonth, sum(OrderSum) AS OrdersCount FROM viewOrder GROUP BY Year(OrderTime), Month(OrderTime)"
Det virker også, men jeg skal have det stillet op i en tabel som ovenstående. Det driller mig. Nogle der kan hjælpe?
Shoppen er først startet februar 2009, derfor er der ingen ordrer januar 2009, så der skal systemet skrive 0.
Det hedder krydstabulering, du skal så indstille rækkeoverskrifter og kolonneoverskrifter. Lav først en forespørgsel der skaber alle dine grunddata, og brug så den forespørgsel til at kreere krydtabuleringen, så er det nemmere at få det til spille, brug evt. en guide. Det kan også laves som en rapport.
Ja det er en god ide først at lave krydstabuleringen i access, og dernæst aflæse/aflure (i SQL visning) hvad access har foreslået af løsning, og dernæst implementere løsningen i ASP, evt. redigere og tilrette så de sidste ting kommer på plads (det kan anførselstegn der skal rettes til apostroffer m.m.)
Jeg har lavet en forespørgsel i access, som ser ud som jeg ønsker (som ovenstående).
Det gav mig følgende sql-streng i asp:
Sql = "TRANSFORM Sum(viewOrderProduct.OrderProductPriceSum) AS PriceSum SELECT Format([OrderCreatedDateTime],'mm') AS monate FROM viewOrderProduct GROUP BY Format([OrderCreatedDateTime],'mm') PIVOT Format([OrderCreatedDateTime],'yyyy');"
Kan du give mig et kort hint til hvordan jeg så får det vist:
2009 2010 Januar 0 600 Februar 450 799 Marts 530 899 etc.
Jeg har selv fundet løsningen. Jeg poster lige eksemplet her på crosstab udtræk i asp fra access.
Tak for hjælpen
Sql = "TRANSFORM Sum(viewOrderProduct.OrderProductPriceSum) AS 'PriceSum' SELECT Format([OrderCreatedDateTime],'mm') AS Month FROM viewOrderProduct GROUP BY Format([OrderCreatedDateTime],'mm') PIVOT Format([OrderCreatedDateTime],'yyyy');" Set Record = omsaetning.Execute(Sql)
Response.Write "<TR>" For i = 0 to Record.Fields.Count - 1 Response.Write "<TH align=""left""><FONT FACE=""ARIAL"" SIZE=""2"">" & Record.Fields(i).Name & "</FONT></TH>" Next Response.write "</TR>" ' -- Now output the contents of the Recordset Record.MoveFirst Do While Not Record.EOF ' -- output the contents Response.Write "<TR>" For i = 0 to Record.Fields.Count - 1 Formatnumber(i) Response.Write "<TD><FONT FACE=""ARIAL"" SIZE=""1"">" & Record.Fields(i) & "</FONT></TD>" Next Response.write "</TR>" ' -- move to the next record Record.MoveNext Loop
Record.Close set Record = Nothing omsaetning.Close set omsaetning = Nothing
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.