15. februar 2000 - 10:17
Der er
15 kommentarer og 1 løsning
Hjælp til SQL statement
SQL_search = "SELECT Kategori.*, ProdType.*, Produkter.* " & _ "FROM (Kategori INNER JOIN Produkter ON " & _ "Kategori.KatID = Produkter.Kategori) INNER JOIN ProdType ON " & _ "Produkter.ID = ProdType.ProdukttypeID " & _ "WHERE " & _ "InStr(Kategori.KatNavn,'" & sogeord & "')>0" &_ "OR InStr(ProdType.Varenr,'" & sogeord & "')>0 " & _ "OR InStr(ProdType.Varenrbeskr,'" & sogeord & "')>0" &_ "OR InStr(ProdType.Speciel,'" & sogeord & "')>0" &_ "OR InStr(Produkter.Navn,'" & sogeord & "')>0" &_ "OR InStr(Produkter.Beskrivelse,'" & sogeord & "')>0 ORDER BY Kategori.KatNavn;" Denne SQL sætning virker fint, problemet er dog et andet end selve eksekveringen af det. Opstillingen burde se sådan ud: Produktbeskrivelse: adfasdfasdfasdfasdfasdfasdfa asdfasdfas asdfasdf asdfasdfasdfasdfasdf sdafdafdasfdas VareNr Beskrivelse Pris 21344 BLa bla bla 32141,- 21544 BLa bla bla 456,- 21234 BLa bla bla 768,- ------------------------------------- Dette er hvordan det ser ud nu! Produktbeskrivelse: adfasdfasdfasdfasdfasdfasdfa asdfasdfas asdfasdf asdfasdfasdfasdfasdf sdafdafdasfdas VareNr Beskrivelse Pris 21344 BLa bla bla 32141,- 21544 BLa bla bla 456,- 21234 BLa bla bla 768,- Produktbeskrivelse: adfasdfasdfasdfasdfasdfasdfa asdfasdfas asdfasdf asdfasdfasdfasdfasdf sdafdafdasfdas VareNr Beskrivelse Pris 21344 BLa bla bla 32141,- 21544 BLa bla bla 456,- 21234 BLa bla bla 768,- Produktbeskrivelse: adfasdfasdfasdfasdfasdfasdfa asdfasdfas asdfasdf asdfasdfasdfasdfasdf sdafdafdasfdas VareNr Beskrivelse Pris 21344 BLa bla bla 32141,- 21544 BLa bla bla 456,- 21234 BLa bla bla 768,- Som I kan su er selv udskriften den samme, men pga. at den også skal kunne søge i feltet VareNr, bliver recordsettet for langt! Jeg forestiller mig at man skal bruge noget GROUP BY eller UNION kommando, ved bare ikke hvordan.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
15. februar 2000 - 10:36
#1
prøv med "SELECT DISTINCT" istedet for bare select "SELECT"
15. februar 2000 - 10:38
#2
eller "GROUP VY ProdType.Varenr" så det ser sådan ud : "OR InStr(Produkter.Beskrivelse,'" & sogeord & "')>0 GROUP VY ProdType.Varenr ORDER BY Kategori.KatNavn;" men det tror jeg ikke vil virke
15. februar 2000 - 10:43
#3
Du kan bruge DISTINCT for at sikre at der kun kommer et sæt resultater. SELECT DISTINCT felt FROM tabel
15. februar 2000 - 10:56
#4
Reason ---> jeg vender tilbage lidt senere med GROUP by, for der er lidt der skal laves om for at afprøve det... Sone ---> Distinct virker ikke efter hensigten
15. februar 2000 - 13:42
#5
GROUP BY er det du skal bruge, men husk at _alle_ kolonner som udtrækkes skal med i dit GROUP BY statement, det betyder at du kan få problemer ved brug af * i dit SELECT. En undtagelse er dog kolonner som beregner f.eks. gennemsnit eller sum. - Aske
17. februar 2000 - 10:01
#6
SQL_search = "SELECT DISTINCT Kategori.KatID, Kategori.KatNavn, ProdType.ProdID, ProdType.ProdukttypeID" &_ ", ProdType.Pris, ProdType.Varenr, ProdType.Varenrbeskr, ProdType.Speciel," &_ "Produkter.ID, Produkter.Navn, Produkter.Beskrivelse, Produkter.Billede, Produkter.Kategori " & _ "FROM (Kategori INNER JOIN Produkter ON " & _ "Kategori.KatID = Produkter.Kategori) INNER JOIN ProdType ON " & _ "Produkter.ID = ProdType.ProdukttypeID " & _ "WHERE " & _ "InStr(Kategori.KatNavn,'" & sogeord & "')>0" &_ "OR InStr(ProdType.Varenr,'" & sogeord & "')>0 " & _ "OR InStr(ProdType.Varenrbeskr,'" & sogeord & "')>0" &_ "OR InStr(ProdType.Speciel,'" & sogeord & "')>0" &_ "OR InStr(Produkter.Navn,'" & sogeord & "')>0" &_ "OR InStr(Produkter.Beskrivelse,'" & sogeord & "')>0 GROUP BY ProdType.Varenr " &_ "ORDER BY Kategori.KatNavn;" --------------------------------------------------------------------------- Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'KatID' as part of an aggregate function. /includes/produkter_search_inc.asp, line 31
17. februar 2000 - 10:04
#7
Tjah, jeg ved ikke rigtigt hvad den fejl betyder?
17. februar 2000 - 10:04
#8
du skal tilføje det her efter ORDER BY "GROUP BY Kategori.KatID, Kategori.KatNavn, ProdType.ProdID, ProdType.ProdukttypeID" &_ ", ProdType.Pris, ProdType.Varenr, ProdType.Varenrbeskr, ProdType.Speciel," &_ "Produkter.ID, Produkter.Navn, Produkter.Beskrivelse, Produkter.Billede, Produkter.Kategori"
17. februar 2000 - 10:49
#9
Ja, men så løser det vel ikke det problem jeg havde til at starte med. At mit recordset blev for langt?
17. februar 2000 - 10:50
#10
bruger du rs.eof osv .. ?
17. februar 2000 - 11:24
#11
Jaja det gør jeg men for ikke at gøre det for uoverskueligt har jeg kun skrevet min SQL sætning....
17. februar 2000 - 11:39
#12
----------- Nu paster jeg alligevel hele koden så i kan se det ------------- <% sub retrieve_search() sogeord = trim(request.form("search")) if sogeord = "" then sogeord = "asdfadfasfdaffafadfasfadfaadaf" ' Brugen vil ikke få nogle resultater end if dim SQL_search SQL_search = "SELECT Kategori.KatID, Kategori.KatNavn, ProdType.ProdID, ProdType.ProdukttypeID" &_ ", ProdType.Pris, ProdType.Varenr, ProdType.Varenrbeskr, ProdType.Speciel," &_ "Produkter.ID, Produkter.Navn, Produkter.Beskrivelse, Produkter.Billede, Produkter.Kategori " & _ "FROM (Kategori INNER JOIN Produkter ON " & _ "Kategori.KatID = Produkter.Kategori) INNER JOIN ProdType ON " & _ "Produkter.ID = ProdType.ProdukttypeID " & _ "WHERE " & _ "InStr(Kategori.KatNavn,'" & sogeord & "')>0" &_ "OR InStr(ProdType.Varenr,'" & sogeord & "')>0 " & _ "OR InStr(ProdType.Varenrbeskr,'" & sogeord & "')>0" &_ "OR InStr(ProdType.Speciel,'" & sogeord & "')>0" &_ "OR InStr(Produkter.Navn,'" & sogeord & "')>0" &_ "OR InStr(Produkter.Beskrivelse,'" & sogeord & "')>0 GROUP BY Varenr " &_ "ORDER BY Kategori.KatNavn;" set RS_search = connect.execute(SQL_search) if RS_search.eof then response.write "<font face='verdana' size='3'><b>Søgningen gav ikke resultat</b></font>" else do until RS_search.eof %> <!-- kategori overskrift starter --> <table border="0" cellpadding="0" cellspacing="0" width="509"> <tr> <td width="375"><strong><font face="verdana" size="2"> <% Response.write RS_search("KatNavn") %> </font></strong></td> <td width="10"><img src="images/invisible.gif" width="10" height="10"></td> <td width="1" valign="top" bgcolor="#000000" rowspan="3"><img src="images/invisible.gif" width="1" height="1"></td> <td width="10"><img src="images/invisible.gif" width="10" height="10"></td> <td width="113"></td> </tr> <tr> <td width="375" bgcolor="#000000" height="1"><img src="images/invisible.gif" width="375" height="1"></td> <td width="10"><img src="images/invisible.gif" width="10" height="1"></td> <td width="10"><img src="images/invisible.gif" width="10" height="1"></td> <td width="113"><img src="images/invisible.gif" width="10" height="1"></td> </tr> <tr> <td width="375"><img src="images/invisible.gif" width="3" height="6"></td> <td width="10"><img src="images/invisible.gif" width="3" height="6"></td> <td width="10"><img src="images/invisible.gif" width="3" height="6"></td> <td width="113"><img src="images/invisible.gif" width="3" height="6"></td> </tr> </table> <!-- Produkt Tabel opbygning starter --> <table border="0" cellpadding="0" cellspacing="0" width="509" border="0"> <tr> <td width="375" valign="top"> <table border="0" cellpadding="0" cellspacing="0" width="375"> <tr> <td><font face="verdana" size="2"><strong> <% Response.write RS_search("Navn") %> </strong></font></td> </tr> <tr> <td><font face="Verdana" size="1"> <% Response.write RS_search("Beskrivelse") %> </font> </td> </tr> <tr> <td><img src="images/invisible.gif" width="10" height="10"></td> </tr> <tr> <td> <table border="0" height="101"><tr><td valign="top"> <table border="0" cellpadding="0" cellspacing="0" width="100%" border="0"> <tr> <td valign="top" width="60" height="15"><font face="verdana" size="1"><strong>Varenr.:</strong></font></td> <td valign="top" width="10" height="15"><font face="verdana" size="1"><img src="images/invisible.gif" width="10" height="10"></font></td> <td valign="top" width="215" height="15"><font face="verdana" size="1"><strong>Bekrivelse</strong></font></td> <td valign="top" width="10" height="15"><font face="verdana" size="1"><img src="images/invisible.gif" width="10" height="10"></font></td> <td valign="top" width="70" align="right" height="15"><font face="verdana" size="1"><strong>Pris</strong></font></td> </tr> <tr> <td valign="top" width="365" colspan="5" bgcolor="#808080" height="1" border="0"><img src="images/invisible.gif" width="10" height="1"></td> </tr> <% SQL_produkttype_search = "SELECT ProdType.* " &_ "FROM Kategori INNER JOIN " & _ "(Produkter INNER JOIN ProdType " & _ "ON Produkter.ID = ProdType.ProdukttypeID) " & _ "ON Kategori.KatID = Produkter.Kategori " &_ "WHERE (((Produkter.ID)=" & RS_search("ID") & ") " &_ "AND ((Kategori.KatID)=" & RS_search("KatID") & "));" Set RS_produkttype_search = connect.execute(SQL_produkttype_search) do until RS_produkttype_search.EOF %> <% Speciel_beskr = RS_produkttype_search("Speciel") if Speciel_beskr <> "" then response.write "<tr><td valign='top' width='100%' colspan='5' height=0>" response.write "<font face='verdana' size='1'>" & Speciel_beskr & "</font>" response.write "</td></tr>" else response.write "<tr><td valign='top' width='100%' colspan='5' height=0>" response.write "<img src='images/invisible.gif' width='10' height='1'>" response.write "</td></tr>" end if %> <tr> <td valign="top" width="60"><strong><font face="Verdana" size="1"> <% response.write RS_produkttype_search("Varenr") %> </font></strong></td> <td valign="top" width="10"></td> <td valign="top" width="215"><font face="verdana" size="1"> <% response.write RS_produkttype_search("Varenrbeskr") %> </font></td> <td valign="top" width="10"></td> <td valign="top" width="70" align="right"><strong><font face="Verdana" size="1"> <% response.write RS_produkttype_search("Pris") %> </font></strong></td> </tr> <% RS_produkttype_search.movenext loop RS_produkttype_search.close Set RS_produkttype_search = nothing %> <tr> <td valign="top" width="60"></td> <td valign="top" width="10"></td> <td valign="top" width="215"></td> <td valign="top" width="10"></td> <td valign="top" width="70" align="right"></td> </tr> <tr> <td valign="top" width="365" height="1" colspan="5" bgcolor="#808080"><img src="images/invisible.gif" width="10" height="1"></td> </tr> <tr> <td valign="top" width="365" colspan="5" height="21"> </td> </tr> </table> </td></tr> </table> </td> </tr> </table> </td> <td width="10"><img src="images/invisible.gif" width="10" height="10"></td> <td width="1" bgcolor="#000000"><img src="images/invisible.gif" width="1" height="10"></td> <td width="10"><img src="images/invisible.gif" width="10" height="10"></td> <td width="113" valign="top"><table border="0" cellpadding="0" cellspacing="0" width="115" height="113"> <tr> <td valign="top" width="115"> <% if RS_search("Billede") = "" or RS_search("Billede") = " " then %> </td> </tr> <tr> <td valign="top" width="113" height="20"> <!-- åbning af nyt vindue --> <center></center><a href="java script:openLink('storbilled.asp?id=<% response.write RS_search("ID")%>')"><font face="Verdana" size="1">Info</font></a></center></td> <% else %> <img src="prod_images/ <% response.write RS_search("Billede")%>" WIDTH="113" HEIGHT="113"></font> </td> </tr> <tr> <td valign="top" width="113" height="20"> <!-- åbning af nyt vindue --> <a href="java script:openLink('storbilled.asp?ID=<% response.write RS_search("ID")%>');"><img src="images/lup.gif" border="0" WIDTH="113" HEIGHT="20"></a></td> <% end if %> </tr> </table> </td> </tr> </table> <% RS_search.movenext loop end if RS_search.close Set RS_search = nothing %> <!-- Tabel opbygning slutter --> <% end sub %>
17. februar 2000 - 11:40
#13
Som i måske kan se har jeg et loop inden i et andet loop. Men, det yderste recordset er for langt. Det skal grupperes med tabellen prodtype - how?
18. februar 2000 - 15:37
#14
Nu må der altså til at ske noget ... jeg er ret presset her.
kig evt. på
www.ergogroup.dk og prøv at
den som løser det får 100p oveni....
06. marts 2000 - 10:01
#16
Jeg tror ikke dette kommer meget videre - men jeg finder vel ud af det selv :\
Kurser inden for grundlæggende programmering