Avatar billede mortency Nybegynder
01. oktober 2004 - 12:52 Der er 1 løsning

sum pr. mnd og år.

Scriptet er som følger. Noe som virker greit. Den summerer biler pr avdeling og antall dager en bil har vært aktiv. Er det mulig å få den til å summerer aktive pr mnd og antall dager pr mnd. Altså legge til to funksjoner?

Output jeg vil ha skal bli slikt:
Department(ANavn)
JANUAR 2003
VF54423(RegNr) 21.01.2003(GjelderFra)  23.01.2003(SiOppforsikringFra)  3(AntDays)
VF54422(RegNr) 21.01.2003(GjelderFra)  23.03.2003(SiOppforsikringFra)  9(AntDays)
SUM JANUAR 12 days 2 cars

FEBRUARY 2003
VF54422(RegNr) 21.01.2003(GjelderFra)  23.03.2003(SiOppforsikringFra)  30(AntDays)
SUM JANUAR 30 days 1 car

MARS 2003
VF54422(RegNr) 21.01.2003(GjelderFra)  23.03.2003(SiOppforsikringFra)  23(AntDays)
SUM JANUAR 23 days 1 car


.....
<%
dim adoCn
dim strSQL
set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.Open strConn

'-----------------------------------------------------------------------------
'Skriver ut alle dager på biler - START
'-----------------------------------------------------------------------------
set adoRs = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT DISTINCT BID,Regnr,ANavn,GjelderFra,SiOppForsikringFra,Aktiv,CASE WHEN SiOppForsikringFra is null THEN DateDiff(d, GjelderFra, getdate()) ELSE DateDiff(d, GjelderFra, SioppForsikringFra) END AS AntallDager FROM tblbiler,tbl" & strKundeNavn & "Avdeling WHERE FKBRAvdeling=AID ORDER BY ANAVN ASC"

set adoRs = adoCn.Execute(strSQL)

Response.Write("<table border=""1"" width=""100%"" cellpadding=""0"" cellspacing=""0"" style=""border-collapse: collapse"" bordercolor=""#000000"">")
Response.Write("<tr bgcolor=""#CC6600"">")
Response.Write(" <td colspan=""6"" align=""middle""><font face=""verdana"" size=""2"" color=""#FFFFFF""><b>RAPPORT</b></font></td>")
Response.Write("</tr>")
Response.Write("<tr>")
Response.Write(" <td colspan=""6"" align=""middle"">&nbsp;</td>")
Response.Write("</tr>")
Response.Write("<tr bgcolor=""#CC6600"">")
Response.Write(" <td><font face=""verdana"" size=""1"" color=""#FFFFFF"">&nbsp;<b>Avdeling</b></font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"" color=""#FFFFFF"">&nbsp;<b>Reg. Nr</b></font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"" color=""#FFFFFF"">&nbsp;<b>GjelderFra</b></font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"" color=""#FFFFFF"">&nbsp;<b>Si Opp forsikring fra</b></font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"" color=""#FFFFFF"">&nbsp;<b>Aktiv</b></font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"" color=""#FFFFFF"">&nbsp;<b>Antall dager aktiv</b></font></td>")
Response.Write("</tr>")

Dim i2
i = 0
i2 = 0
TotSum = 0
Do While Not adoRs.EOF
'Legger til et mellomrom mellom Avdelingene
If Kat <> adoRs("ANavn") Then
    kat = adoRs("ANavn")   

    If AvSum <> 0 Then 
        Response.Write("<tr>")
        Response.Write(" <td colspan=""5""><font face=""verdana"" size=""1"">&nbsp;<b>Totalt på kunden ( " & i2 & " )</b></font></td>")
        Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;<b>" & AvSum & "</b></font></td>")
        Response.Write("</tr>")
        Response.Write("<tr>")
        Response.Write(" <td colspan=""6"" align=""middle"">&nbsp;</td>")
        Response.Write("</tr>")           
    End if
    AvSum = 0
    i2 = 0
   
End if

Dim strdatoGjelderFra
strdatoGjelderFra = adoRs("GjelderFra")

strDay = Day( strdatoGjelderFra )
if len(strDay) = 1 then
    strDay = "0" & strDay
end if
               
strMonth = Month( strdatoGjelderFra )
if len(strMonth) = 1 then
    strMonth = "0" & strMonth
end if

strdatoGjelderFra = strDay & "." & strMonth & "." & Year( strdatoGjelderFra )

strSiOppForsikringFra = adoRs("SiOppForsikringFra")

strDay2 = Day( strSiOppForsikringFra )
if len(strDay2) = 1 then
    strDay2 = "0" & strDay2
end if
               
strMonth2 = Month( strSiOppForsikringFra )
if len(strMonth2) = 1 then
    strMonth2 = "0" & strMonth2
end if   

strSiOppForsikringFra = strDay2 & "." & strMonth2 & "." & Year( strSiOppForsikringFra )

Response.Write("<tr>")
Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;" & adoRs("Anavn") & "</font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;" & adoRs("RegNr") & "</font></td>")
Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;" & strdatoGjelderFra & "</font></td>")

If Trim(strSiOppForsikringFra) = ".." Then
    Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;Løpende</font></td>")
Else
    Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;" & strSiOppForsikringFra & "</font></td>")
End if

Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;" & adoRs("Aktiv") & "</font></td>")

If adoRs("AntallDager") < 0 Then
    Response.Write(" <td><font face=""verdana"" size=""1"" color=""red"">&nbsp;<b>" & adoRs("AntallDager") & "</b></font></td>")
Else
    Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;" & adoRs("AntallDager") & "</font></td>")
End if
Response.Write("</tr>")

i = i + 1
i2 = i2 + 1
TotSum = TotSum + Cint(adoRs("AntallDager"))
AvSum = AvSum + Cint(adoRs("AntallDager"))
adoRs.MoveNext
Loop

If AvSum <> 0 Then 
    Response.Write("<tr>")
    Response.Write(" <td colspan=""5""><font face=""verdana"" size=""1"">&nbsp;<b>Totalt på kunden ( " & i2 & " )</b></font></td>")
    Response.Write(" <td><font face=""verdana"" size=""1"">&nbsp;<b>" & AvSum & "</b></font></td>")
    Response.Write("</tr>")
    Response.Write("<tr>")
    Response.Write(" <td colspan=""6"" align=""middle"">&nbsp;</td>")
    Response.Write("</tr>")           
End if

adoRs.Close
Set adoRs = Nothing

adoCn.Close
Set adoCn = Nothing
%>
<tr>
    <td>&nbsp;</td>
    <td colspan="5">&nbsp;</td>   
</tr>
<tr>
    <td><font face="verdana" size="1">&nbsp;Total aktive dager:</font></td>
    <td colspan="5"><font face="verdana" size="1">&nbsp;<b><%=TotSum%></b></font></td>   
</tr>
<tr>
    <td><font face="verdana" size="1">&nbsp;Antall kjøretøy:</font></td>
    <td colspan="5"><font face="verdana" size="1">&nbsp;<b><%=i%></b></font></td>   
</tr>
<tr bgcolor="#CC6600">
    <td><font face="verdana" size="1">&nbsp;Skal gå på dato:</font></td>
    <td colspan="5"><font face="verdana" size="1">&nbsp;<b>Gjelder fra dato</b></font></td>   
</tr>
</table>

Kanskje det er denne spørringen som må modifiseres litt?

SELECT DISTINCT
BID,Regnr,ANavn,GjelderFra,SiOppForsikringFra,Aktiv,
CASE WHEN SiOppForsikringFra is null THEN
    DateDiff(d, GjelderFra, getdate())
ELSE
    DateDiff(d, GjelderFra, SioppForsikringFra)
END AS AntDays

FROM
tblbiler,
tblAvdeling

WHERE

FKBRAvdeling=AID
ORDER BY ANAVN ASC
Avatar billede mortency Nybegynder
05. oktober 2004 - 10:26 #1
Lukker spm
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
Kurser inden for grundlæggende programmering

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