webForumDet fria alternativet

Loopa och flera SQL

Databaser & SQL

5 svar · 230 visningar · startad av pellsäter

Medlem sedan aug. 2000526 inlägg
Frågan#1

Hej

Vill kuna pressentera statistik snyggt.. har en db i access med info om datum för beställning. Jag kan plocka ut antal kunder per datum. hur mkt försäljning per datum och antal ordrar per datum och antalet produkter per datum

Men hur får jag det snyggt i en tabell som jag försökt nedan??

Det funkar inte att skriva en sql sats för varje delmoment verkar det som för då krashar det sedan när den ska loopa i genom det

Är det nåt enkelt jag itne tänkt på!

<%

Set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "xxxx"
sql = "Select o.datum, sum(o.antal * o.pris) AS summa from orderRadold o, produkter p where o.artikelID = p.prodID group by o.datum order by datum desc"
sql1 = "select distinct datum, Count(antkund) as x FROM (select distinct kundid as antkund, datum FROM orderradold) group by datum order by datum desc"
Set rs1 = Server.CreateObject("ADODB.Recordset")
rs.open sql,conn
rs1.open sql1,conn
%>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="10%"><font color="#000000">Datum</font></td>
<td width="17%"><font color="#000000">Summa sålda varor</font></td>
<td width="10%"><font color="#000000">Antal kunder</font></td>
<td width="12%"><font color="#000000">Antal produkter</font></td>
<td width="10%"><font color="#000000">Antal ordrar</font></td>
<td width="41%"> </td>
</tr>
<% Do until (Rs.eof)%> <%kr = rs("summa")%> <% Do until (Rs1.eof)%> <%antal = rs1("X")%>
<tr>
<td width="10%"><font color="#000000"><%=rs("datum")%></font></td>
<td width="17%"><font color="#000000"><%=kr%>:-</font></td>
<td width="10%"><font color="#000000"><%=antal%></font></td>
<td width="12%"> </td>
<td width="10%"> </td>
<td width="41%"> </td>
</tr>
<%
rs.movenext
loop
rs1.movenext

loop
%>

Medlem sedan dec. 20003 887 inlägg
#2

Du bör byta plats på rs.movenext och rs1.movenext, eftersom du har rs1 nästlad innanför rs.

Medlem sedan aug. 2000526 inlägg
#3

ok-- då loopar den antal kunder rätt men både datum blir fel... den tar bara det senaste datumet

Medlem sedan dec. 200012 464 inlägg
#4

Du kan inte nästla looparna på det sättet. Du vill väl gå igenom dom parallellt i stället?

I så fall är det väl bäst att slå ihop frågorna till 1?

Medlem sedan aug. 2000526 inlägg
#5

en fråga hade varit jättebra men jag har ingen aning om hur jag skriver den

Medlem sedan mars 20034 471 inlägg
#6

Re: Loopa och flera SQL

pellsäter skrev:

...Jag kan plocka ut antal kunder per datum. hur mkt försäljning per datum och antal ordrar per datum och antalet produkter per datum...

Jag kan ingenting om Access, så jag vet inte om du kan skapa nya tabeller? (create view) Om du kan det så kan du ju göra så att du räknar ut den statistik du är intresserad av i egna tabeller och mellanlagrar resultaten. Och därefter slår ihop dem.
Alltså, om du tar ut datum och antal i KundStat, SäljStat, OrderStat och ProdStat så kan du slå ihop infon mha:
Select K.datum, K.antal, S.antal, O.antal, P.antal
From KundStat K, SäljStat S, OrderStat O, ProdStat P
Where K.datum = S.datum and S.datum = O.datum and O.datum = P.datum;

Det går säkert att göra på något bättre sätt, men detta är vad jag kommer på för ögonblicket.

135 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)