webForumDet fria alternativet

sql - vill bara ha en träff på varje namn

ASP

6 svar · 471 visningar · startad av daniel_ra

Medlem sedan jan. 2002381 inlägg
Frågan#1

då jag gör en sökning vet jag att detta kommer att resultera
i att jag får poster med samma namn. hur skriver jag
min sql för att endast plocka en post av varje namn.
Hoppas ni förstår vad jag menar. Jag har gjort det
förut men kommer inte ihåg hur.

Medlem sedan juli 20033 147 inlägg
#2

Finns ett SQL forum...

<%
SQL = "Select Distinct(kolumn) from tabell"
Set objRS = databas.execute(SQL)
While NOT objRS.EOF
Response.write objRS(0) & "<br>"
Wend
%>
Medlem sedan jan. 2002381 inlägg
#3

kom på det, så var det..

tänkte iof lite fel. tänkte att jag kunde använda detta för
att rensa ett redan befintligt recordset från dubletter med filter men det går kanske inte.

Jag vill undvika att göra en ny sökning utan använda befintligt recordset. Däremot vill jag inte lista allt från recordsetet i min combobox.
därför behöver jag rensa ett befintligt recordset eller på något vis
bara plocka ut unika namn.

kan jag på något vis lista allt från ett recordset bortsett från dubletter? filter kanske inte är någon bra idé?

Medlem sedan sep. 20026 425 inlägg
#4

daniel_ra: Meleas kod ska fungera utifrån de instruktioner du ger oss. Med distinct så plockas enbart unika poster ut från en tabell. Om du har en tabell som ser ut så här:

Tabell: tbl_namn
Kolumn: namn

Anders
Anders
Anna
Paula

..och kör SQL-frågan

SELECT distinct namn FROM tbl_namn

så får du enbart fram Anders, Anna och Paula. Således sorteras ett av Anders bort. :)

Medlem sedan dec. 20003 887 inlägg
#5

För att göra det utan att öppna om ditt recordset måste du kolla igenom alla poster i det antar jag, eftersom det inte går att göra med Filter (fungerar som WHERE i SQL).

Något i den här stilen

While Not [i]recordset[/i].EOF
  strPrev = [i]recordset[/i](0)

  [i]recordset[/i].MoveNext

  If Not [i]recordset[/i].EOF Then
    If strPrev = [i]recordset[/i](0) Then
      [i]recordset[/i].Delete
      [i]recordset[/i].Update
    End If
  End If
Wend

Det finns väl en möjligthet att göra på det här sättet också

[i]recordset[/i].DataSource = "SELECT DISTINCT namn FROM tabell"
[i]recordset[/i].Requery

Jag skulle iofs inte göra på något av dessa sätt utan i början öppna mitt recordset med en fråga som ger mig dom poster jag behöver. Som Melea sa med andra ord.

Medlem sedan jan. 2002381 inlägg
#6

jag gjorde en ny fråga för att plock aut exakt det jag ville ha med distinct. tack för hjälpen

Medlem sedan sep. 20026 425 inlägg
#7

Får vi se hur koden blev? :D

268 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)