Avatar billede aamodtod Nybegynder
10. juli 2001 - 11:22 Der er 16 kommentarer og
1 løsning

Siste post

Jeg bruker følgene kode:

<%
startdato = request.form(\"startdato\")
startdato = month(startdato) & \"-\" & day(startdato) & \"-\" & year(startdato)
slutdato = request.form(\"slutdato\")
slutdato = month(slutdato) & \"-\" & day(slutdato) & \"-\" & year(slutdato)

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"/fpdb/Registrering_av_feil_PiB.mdb\")

SQL=\"SELECT DISTINCTROW Resultater.Dato, Resultater.PiB, Oppfølging.Beskrivelse FROM Resultater LEFT JOIN Oppfølging ON Resultater.FEILID = Oppfølging.FEILID WHERE (Resultater.Dato BETWEEN #\" & StartDato & \"# AND #\" & SlutDato & \"#)\"

if( LEN(request(\"orderBy\")) > 0 ) then
  SQL = SQL & \" ORDER BY \" & request(\"orderBy\")
else
  SQL = SQL & \" ORDER BY PiB\"
end if

Set RS=Conn.Execute( SQL )
If (rs.BOF Or rs.EOF) Then
    response.Write \"Ingen poster funnet\"
    else
  Do Until rs.EOF

   
with response
    .write \"<table width=300, align=center, border=2><tr><td  width=300>\"
  .write \"<a>Dato</a>\"
  .write \"</td><td width=300>\"
  .write \"<a>PiB</a>\"
  .write \"</td><td width=300>\"
  .write \"<a>Beskrivelse</a>\"
   
end with   
while not RS.EOF
  with response
    .write \"<tr><td width=300>\" & RS(\"Dato\") & \"</td>\"
    .write \"<td width=300>\" & RS(\"PiB\") & \"</td>\"
    .write \"<td width=300>\"& RS(\"Beskrivelse\")&\"</td>\"


  end with
  RS.MoveNext
wend
Loop
End if
response.write \"</table>\"
%>

Jeg skal vise alle postene fra \"Resultater\", men jeg vil kun ha ut den siste posten fra \"Oppfølging.Beskrivelse\"

Kan noen hjelpe meg med dette??

Hilsen

Odd

Hilsen

Odd
Avatar billede stoffer Nybegynder
10. juli 2001 - 11:33 #1
first of all.

Aldrig Aldrig bruge ÆØÅ i tabel og databasenavne..

sql\'en for den sidste post:

\"select top 1 beskrivelse from oppfølgning order by dato desc\"

Avatar billede aamodtod Nybegynder
10. juli 2001 - 11:37 #2
Kunne du ha puttet inn den koden i dette scrip slik at det fungerer?

For det er i tabellen jeg vil at kun den siste posten i oppfølging skal vises som har lik \"FEILID\" med Resultater.

Hilsen

Odd
Avatar billede stoffer Nybegynder
10. juli 2001 - 11:42 #3
Ej det vil jeg ikke rigtigt, hader at \"servere\" ting.

Jeg vil i stedet forklarer hvordan du kunne gøre:

lav en variabel

dim strMyBeskrivelse

-- eksekvere \"select top 1 beskrivelse from oppfølgning order by dato desc\" --

strMyBeskrivelse = rs(\"beskrivelse\")

så har du den nyeste beskrivelses post i en variabel og kan bruge den som du lyster.

Avatar billede aamodtod Nybegynder
10. juli 2001 - 12:01 #4
Har prøvd som du skriver og får da følgene feilmelding: Beskrivelse
ADODB.Fields error \'800a0cc1\'

ADO finner ikke objektet i samlingen som samsvarer med navnet, eller ordenstallreferansen programmet forespurte.

/test/Rapport_pib.asp, line 45


Linje 45 ser slik ut: .write \"<tr><td width=300>\" & RS(\"Dato\") & \"</td>\"


Odd
Avatar billede stoffer Nybegynder
10. juli 2001 - 12:07 #5
så er det fordi du ikke vælge dato med:

select top 1 beskrivelse, dato from oppfølgning order by dato desc

du kan også bruge:

select top 1 * from oppfølgning order by dato desc
Avatar billede aamodtod Nybegynder
10. juli 2001 - 12:17 #6
Men i koden jeg har lagt ut, så skal jeg ha ut dato fra \"Resultater\" og ikke i fra \"Oppfølging\".
Det kan vel være her det går galt??
-Men den SQL jeg har skal jeg bruke, bortsett fra at jeg trenger den siste \"oppfølgings.beskrivelse\" hvor Resultat.FEILID = Oppfølging.FEILID
Avatar billede aamodtod Nybegynder
10. juli 2001 - 12:24 #7
Bare så vi ikke misforstår hverandre.
Denne SQL skal benyttes:
SQL=\"SELECT DISTINCTROW Resultater.Dato, Resultater.PiB, Oppfølging.Beskrivelse FROM Resultater LEFT JOIN Oppfølging ON Resultater.FEILID = Oppfølging.FEILID WHERE (Resultater.Dato BETWEEN #\" & StartDato & \"# AND #\" & SlutDato & \"#)\"

Men jeg trenger å få ut den siste posten av Oppfølging.Beskrivelse hvor Resultat.FEILID=Oppfølging.FEILID


Avatar billede dohn Nybegynder
10. juli 2001 - 13:26 #8
Er feilid et autonumber-felt?

Hvis ja - kan du da ikke blot...

SQL=\"SELECT DISTINCTROW top 1 Resultater.Dato, Resultater.PiB, Oppfølging.Beskrivelse FROM Resultater LEFT JOIN Oppfølging ON Resultater.FEILID = Oppfølging.FEILID WHERE (Resultater.Dato BETWEEN #\" & StartDato & \"# AND #\" & SlutDato & \"#) order by feilíd desc\"
Avatar billede aamodtod Nybegynder
10. juli 2001 - 13:34 #9
FeilID er autonummer i resultater, men ikke i oppfølging.

Odd

Avatar billede dohn Nybegynder
10. juli 2001 - 13:47 #10
Hvad kendetegner så oppfølgning? - der er ej heller i datofelt. Du bliver nædttil at have en af delene!
Avatar billede aamodtod Nybegynder
10. juli 2001 - 13:51 #11
OK... Det er oppID, som der er primærnøkkel og autonummer i \"Oppfølging\".
- FEILID i \"oppfølging\" er kun tall felt. Det er en relasjon mellom tabellen \"Resultater\" og \"Oppfølging\"
Avatar billede dohn Nybegynder
10. juli 2001 - 14:02 #12
Hvis du vil hive det hele ud som recordset skal du anvende GROUP i SQL-strengen.

Du er nødttil at skrue det SQL-strengen anderledes sammen - kan ikke løse det uden script, db etc.
Avatar billede aamodtod Nybegynder
10. juli 2001 - 14:04 #13
Har du noen forslag om hvordan det kan gjøres??
Avatar billede aamodtod Nybegynder
10. juli 2001 - 14:14 #14
Jeg har laget en spørring i Access og den får jeg til å fungere, men hvis jeg prøver å lage denne i ASP, så går det ikke. I Access ser den slik ut:

SELECT [Resultater].[Dato], [Resultater].[PIB], [Resultater].[Forrettningsområde], Last([oppfølging].[Beskrivelse]) AS SisteAvBeskrivelse
FROM Resultater LEFT JOIN oppfølging ON [Resultater].[FeilID]=[oppfølging].[FeilID]
GROUP BY [Resultater].[Dato], [Resultater].[PIB], [Resultater].[Forrettningsområde];

Da finner den den siste posten i \"Oppfølging\".

Avatar billede dohn Nybegynder
10. juli 2001 - 14:37 #15
Fint - men hvad er fejlmeddelelsen?
Avatar billede aamodtod Nybegynder
10. juli 2001 - 14:41 #16
Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Du har prøvd å kjøre en spørring som ikke inneholder det angitte uttrykket Dato som del av en mengdefunksjon.

/test/rapport_pib.asp, line 17


Jeg lagde SQL setningen sånn:
SELECT Resultater.Dato, Resultater.PIB,Last (oppfølging.Beskrivelse) AS SisteAvBeskrivelse FROM Resultater LEFT JOIN oppfølging ON Resultater.FeilID=oppfølging.FeilID Where (Resultater.Dato BETWEEN #\" & StartDato & \"# AND #\" & SlutDato & \"#)\"
Avatar billede aamodtod Nybegynder
16. juli 2001 - 07:44 #17
Fikset det selv. Da lagde jeg denne koden: SELECT Resultater.Dato, Resultater.Enhetsnummer, Resultater.PIB, Resultater.Forrettningsområde, Resultater.Gjelder, Resultater.Beskrivelse, Last(oppfølging.Beskrivelse) AS SisteAvBeskrivelse, Resultater.Lost
FROM Resultater LEFT JOIN oppfølging ON Resultater.FeilID = oppfølging.FeilID
GROUP BY Resultater.Dato, Resultater.Enhetsnummer, Resultater.PIB, Resultater.Forrettningsområde, Resultater.Gjelder, Resultater.Beskrivelse, Resultater.Lost
HAVING (((Resultater.Dato) Between #\" & StartDato & \"# And #\" & SlutDato & \"#))\"


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