webForumDet fria alternativet

Problem med Distinct...

ASPur ASP

4 svar · 201 visningar · startad av 250km/h

Medlem sedan juli 200183 inlägg
Frågan#1

Jag har två tabeller där den ena innehåller sortimentet samt vilken subkategori de tillhör. Andra tabellen innhåller subkategorins namn, ID samt vilken huvudkategori de tillhör.

SQL = "SELECT sortiment.KatID, sortiment.subkatID, subk.subkatID, subk.KatID, subk.Subkat FROM sortiment, subk WHERE subk.subkatID = sortiment.KatId AND (Subk.KatId = " & Request("KatId") & ")"
Set RS2 = Connection.execute(SQL)

Meningen är att respektive subkategori skall skrivas ut när man klickat på en kategori.
Detta fungerar strålande förutom att det blir dubletter. Jag har försökt med distinct och union med minst sagt dåliga resultat. Problemet är att det är två tabeller. Kan man använda Distinct ändå och isf hur?

Skulle vara skönt att få hjälp att hamna på rätt spår, jag kanske har gjort det krångligare än det behöver vara...

[Redigerat av 250km/h den 18 jul 2001]

Medlem sedan dec. 200012 464 inlägg
#2

Vad menar du med dubletter?

Distinct appliceras på alla kolumner i resultatet.

Har du försökt med

SQL = "SELECT distinct sortiment.KatID, sortiment.subkatID, subk.subkatID, subk.KatID, subk.Subkat FROM sortiment, subk WHERE subk.subkatID = sortiment.KatId AND (Subk.KatId = " & Request("KatId") & ")"

?

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 200183 inlägg
#3

Med dubletter menar jag att det blir en post "Subkat" för varje produkt som jag har i kategorin. Har jag tre produkter med "SubkatID 3" så blir det tre länkar till Subkat 3. Vilket är ganska irrterande...

Jag har gjort enligt ditt förslag men det enda som händer är att dom sorteras fint i nummerordning...

Medlem sedan dec. 200012 464 inlägg
#4

Nej, sql är inte så bra på att hantera undertryckning av repeterande grupper. Det är nog enklast att hantera det i VB-koden.

...
SQL = "SELECT sortiment.KatID, sortiment.subkatID, subk.subkatID, subk.KatID, subk.Subkat FROM sortiment, subk WHERE subk.subkatID = sortiment.KatId AND (Subk.KatId = " & Request("KatId") & ") order by subkat"
Set RS2 = Connection.execute(SQL)

psub = ""
while not rs2.eof
  if  psub <> rs2("subkat") then
      psub = rs2("subkat")
      response.write psub & "<br>"
  end if
...
  rs2.movenext
wend
...

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 200183 inlägg
#5

Strålande, fungerar alldeles utmärkt!
Tack för hjälpen!

129 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)