webForumDet fria alternativet

Distinct... får det inte att funka.. vad gör jag för fel?

Databaser & SQL

3 svar · 228 visningar · startad av mikul

Medlem sedan aug. 20013 824 inlägg
Frågan#1

får detta felmedelandet:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Det går inte att använda PM-, OLE- eller Hyperlänkobjekt när du väljer endast unika värden (dag).
/asp/kas/menyn/SOK.ASP, line 145

<%
Set Rs = Server.CreateObject("ADODB.Recordset")	
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db.mdb")

sok = Trim(request("sok"))
dag = Trim(request("dag")) 
onPage = request.querystring("sida")
if onPage = "" then onPage = 1 
MaxCount = 4 
icount = 0	

If not Left(Trim(request("dag")),1) = "V" Then
	if sok <> "" then
		SQL = "SELECT  Distinct dag, foretag, [text] FROM tabell where [text] LIKE '%"& sok &"%' and dag LIKE '%"& dag &"' "_
			& " ORDER BY foretag"
	else
		SQL = "SELECT * FROM tabell where dag LIKE '%"& dag &"' "_
			& " ORDER BY foretag"
	end if
else
	if sok <> "" then
		SQL = "SELECT * FROM tabell where [text] LIKE '%"& sok &"%'"_
			& " ORDER BY foretag"     '<----där är det.
	else
		SQL = "SELECT * FROM tabell "_
			& " ORDER BY foretag"
	end if
end if
	
	rs.CursorLocation = 3
	rs.Open SQL, Connect

if not rs.eof then 
	rs.PageSize = MaxCount
	rs.AbsolutePage = onPage
%>

<p align="left" style="margin-left: 5; margin-right: 5; margin-top: 0; margin-bottom: 0">
 Du sökte efter <b>"<%=sok%>"</b> 
 och valde <b><%if left(dag,1) = "V" then : response.write "ingen dag" : else response.write dag : end if%></b>.</p>
                        
              <p style="margin-left: 5; margin-right: 5; margin-top: 0; margin-bottom: 0">
                        
<%	
Response.Write ("Sida "& onPage &" av "& Rs.PageCount & ". Välj sida: ")
For i = 1 To Rs.PageCount
%>
	<a href="sok.asp?sida=<%=i%>&dag=<%=dag%>&sok=<%=sok%>">| <%=i%> |</a> 
<%
Next
%>

/ Mikul

Medlem sedan juni 200032 967 inlägg
#2

Tja, det står i felmeddelandet vad du gör för fel.
Du kan inte ha med fält av typen PM/Memo i select-listan när du använder DISTINCT.

Medlem sedan aug. 20013 824 inlägg
#3

hur gör jag om jag vill lägga distincten på kulomnen Dag bara då?
och fortfarande ta med de andra kolumnerna?
hur ser sql satsen ut då?

/ Mikul

Medlem sedan dec. 200012 464 inlägg
#4

hur gör jag om jag vill lägga distincten på kulomnen Dag bara då?

Distinct gäller alla väden i select-listan, så det går inte.

Har du någon unik kolumn i tabellen, id eller något?

SQL = "SELECT  dag, foretag, [text] FROM tabell where id in " &_
"(select id from tabell where [text] LIKE '%"& sok &"%' and dag LIKE '%"& dag &"' )"_
& " ORDER BY foretag"
272 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)