Avatar billede aamodtod Nybegynder
10. juli 2001 - 08:29 Der er 7 kommentarer og
1 løsning

Hvordan løser jeg dette??

Hei
Jeg har to tabeller:
1. Resultater
2. Oppfølging

Og 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 INNER 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>Oppfølging</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>\"
%>

Hvis det ikke er postet noe i tabellen Oppfølging, men kun i resultater, får jeg beskjed om at \"ingen poster funnet\". - Jeg ønsker at den skal skrive ut alt, selv om det ikke finnes en post i oppfølging.

Odd
Avatar billede nordclc Nybegynder
10. juli 2001 - 08:34 #1
Prøv at lave INNER JOIN om til OUTER JOIN

/Claus
Avatar billede aamodtod Nybegynder
10. juli 2001 - 08:36 #2
Fikk da følgene feil:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntaksfeil i FROM-setningsdelen

/test/Rapport_pib.asp, line 23
Avatar billede nordclc Nybegynder
10. juli 2001 - 08:47 #3
Hmm mystisk, for det du forsøger at lave er en outer join. Den skriver man normalt sådan her i SQL:

SELECT DISTINCTROW
  Resultater.Dato(+),
  Resultater.PiB(+),
  Oppfølging.Beskrivelse
FROM
  Resultater(+), Oppfølgning
WHERE
  Resultater.FEILID(+) = Oppfølging.FEILID
  and (Resultater.Dato \"STARTDATO\" AND \"SLUTDATO\"

Man sådan hænger det jo ikke altid sammen i ASP!

/Claus
Avatar billede nordclc Nybegynder
10. juli 2001 - 08:49 #4
Ahhh, hvad med at lave en forespørgsel i Access, og så slår du op i den i stedet for! Så tror jeg du slipper for problemet.

/Claus
Avatar billede aamodtod Nybegynder
10. juli 2001 - 08:58 #5
-Har forsøkt dette i Access, men den vill da ikke ta med de record som det ikke var postet noe i tabellen \"Oppfølging\".

- Prøvde det første forslaget ditt, og fikk denne feilmeldingen:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Overskytende høyreparentes: ) i spørreuttrykket Resultater.Dato(+)

/test/Rapport_pib.asp, line 24
Avatar billede nordclc Nybegynder
10. juli 2001 - 09:05 #6
OK, men så prøv dette, mens jeg prøver at finde noget om outer/inner joins i ASP:

SELECT DISTINCTROW
  Resultater.Dato,
  Resultater.PiB,
  Oppfølging.Beskrivelse
FROM
  Resultater, Oppfølgning
WHERE
  Resultater.FEILID(+) = Oppfølging.FEILID
  and (Resultater.Dato \"STARTDATO\" AND \"SLUTDATO\"

Avatar billede nordclc Nybegynder
10. juli 2001 - 09:16 #7
OK, vi er tilbage til dit oprindelige udlæg:

INNER JOIN erstattes med LEFT JOIN

Det skulle kunne gøre det.

/Claus

Avatar billede aamodtod Nybegynder
10. juli 2001 - 09:25 #8
Nå fungerte det!
Tusen Takk for hjelpen!!

Hilsen

Odd
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