Kan dette gøres nemmere?
Hej!Jeg har denne kode, som går ned og henter nogle data i en MS SQL database.
Problemet er bare, den tabel der hentes fra, har over 200.000 poster, og med den kode jeg har her, så går jeg ind og henter data op til 36 gange.
36 gange søgning i database med over 200.000 poster, giver en lidt lang load tid..
Kan det løses på en nemmere måde..?
--------------------------------- K O D E ------------------
<%
Function UgeTilDato(aar,uge)
dim januar1,ugedagjan1,mandaguge1,mandagugex
januar1 = DateSerial(aar, 1, 1)
ugedagjan1 = Weekday(januar1, vbMonday)
if ugedagjan1 <= 4 then
' 1. januar er i uge 1
mandaguge1 = DateAdd("d", -ugedagjan1+1, januar1)
else
' 1. januar er i sidste uge foregående år
mandaguge1 = DateAdd("d", 7-ugedagjan1+1, januar1)
end if
mandagugex = DateAdd("ww", uge-1, mandaguge1)
UgeTilDato = mandagugex
End Function
Function Ordrer(strSelskab,strDato)
strDato = Year(strDato) & "-" & Month(strDato) & "-" & Day(strDato)
if strSelskab = 0 then
set rs = Conn.Execute("select count(*) as antal from dbo.[3S Company A_S$Sales Invoice Header] [3S Company A_S$Sales Invoice Header] WHERE ([Sell-to Customer No_] = '45' OR [Sell-to Customer No_] = '46' OR [Sell-to Customer No_] = '47' OR [Sell-to Customer No_] = '48' OR [Sell-to Customer No_] = '49') and [Document Date] = '" & strDato & "'")
else
set rs = Conn.Execute("select count(*) as antal from dbo.[3S Company A_S$Sales Invoice Header] [3S Company A_S$Sales Invoice Header] WHERE [Sell-to Customer No_] = '" & strSelskab & "' and [Document Date] = '" & strDato & "'")
end if
Ordrer = rs("antal")
rs.close
set rs = nothing
End Function
Function Ugenr( MyDate )
Ugenr = DatePart("ww", MyDate, vbMonday, vbFirstFourDays)
If (Ugenr > 52) Then
If (DatePart("ww", DateAdd("d", 7, MyDate), vbMonday, vbFirstFourDays) = 2) Then Ugenr = 1 End If
End If
End Function
%>
<table cellpadding="2" cellspacing="1" class="weektable">
<tr>
<th style="">Denne uge</th>
<th style="">DK</th>
<th style="">SE</th>
<th style="">NO</th>
<th style="">KAS</th>
<th style="">SP</th>
<th style="">I alt</th>
</tr>
<%
'mandag = UgeTilDato(2007,2)
mandag = UgeTilDato(2007,Ugenr(date()))
for f=0 to 6
dato = dateadd("d",f,mandag)
if datediff("d",dato,date) >=0 then
DK = Ordrer("45",dato)
SE = Ordrer("46",dato)
NO = Ordrer("47",dato)
KAS = Ordrer("48",dato)
SP = Ordrer("49",dato)
ALLE = Ordrer("0",dato)
DK1 = DK1 + DK
SE1 = SE1 + SE
NO1 = NO1 + NO
KAS1 = KAS1 + KAS
SP1 = SP1 + SP
ALLE1 = ALLE1 + ALLE
%>
<tr>
<td><%=WeekdayName(weekday(dato,2), false, 2)%></td>
<td><%=DK%></td>
<td><%=SE%></td>
<td><%=NO%></td>
<td><%=KAS%></td>
<td><%=SP%></td>
<td><%=ALLE%></td>
</tr>
<%
end if
next
%>
<tr>
<td class="sumbund"><em>I alt</em></td>
<td class="sumbund"><em><%=DK1%></em></td>
<td class="sumbund"><em><%=SE1%></em></td>
<td class="sumbund"><em><%=NO1%></em></td>
<td class="sumbund"><em><%=KAS1%></em></td>
<td class="sumbund"><em><%=SP1%></em></td>
<td class="sumbund"><em><%=ALLE1%></em></td>
</tr>
</table>
