webForumDet fria alternativet

Dubbletter vid inner join

10 svar · 887 visningar · startad av timedia

timediaMedlem sedan maj 2001451 inlägg
#1

Detta Rs ger dubbletter. Har försökt med Select Distinct, men lyckas inte. Sorteringen bör väl göras i selecten, men hur gör man?

"SELECT Pmiljo.Id, Pmiljo.Miljonr, Pmiljo.Platta AS Miljoplatta, Pmiljo.PU, Pmiljo.Bild AS Miljobild, Pmiljo.Brodtxt, Plattor.Id AS Plattid, Plattor.Artikelnr AS Artikelnr, Plattor.Bild AS Plattbild, Plattor.Namn AS Plattnamn, Plattor.brodtxt FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"
@ndersMedlem sedan juni 200026 914 inlägg
#2
  1. Ställ frågor om SQL i SQL-forumet.
  2. Läs.
LarsGMedlem sedan dec. 200012 465 inlägg
#3

Vad menar du med dubletter?
Vad förväntar du dig för resultat?
Vilket resultat får du?

Flyttas från ASP

timediaMedlem sedan maj 2001451 inlägg
#4

Jag ska skriva ut vilka plattor som används i miljöet. Samma platta används ibland på vägg OCH golv. Dock vill jag att den skrivs ut bara en gång. Idag loopar jag genom RS och då skriver den ut samma platta fler gånger om den används på fler ställen i miljöet.

LarsGMedlem sedan dec. 200012 465 inlägg
#5

Du får alltså (det förenklade) resultatet

Platta Ställe
Plattan vägg
Pluttan vägg
Plattan golv

?

Om det är så, vad vill du ha egentligen?

timediaMedlem sedan maj 2001451 inlägg
#6

Jag får
Platta Ställe
Plattan Vägg
Platta Ställe
Plutta Bård

men vill ha:
Platta Ställe
Plattan Vägg
Plutta Bård

LarsGMedlem sedan dec. 200012 465 inlägg
#7

Det skulle lösa sig med distinct.

timediaMedlem sedan maj 2001451 inlägg
#8

Men.. det gör det inte?

"SELECT Distinct Plattor.Id AS Plattid, Pmiljo.Id, Pmiljo.Platta AS Miljoplatta, Pmiljo.Miljonr, Pmiljo.PU, Pmiljo.Bild AS Miljobild, Pmiljo.Brodtxt, Plattor.Artikelnr AS Artikelnr, Plattor.Bild AS Plattbild, Plattor.Namn AS Plattnamn, Plattor.brodtxt FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"

Vad gör jag galet??

aasahMedlem sedan mars 20033 451 inlägg
#9

Du skriver ju ut värdet TVÅ gånger i varje fråga!

SELECT ...., Pmiljo.Platta AS Miljoplatta, ...., Plattor.Artikelnr AS Artikelnr, ... 
FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr....

Alltså ha inte med BÅDE Pmiljo.Platta och Plattor.Artikelnr i SELECT. De har ju alltid samma värde, så ta bara ut det ena av dem.

Stoppa gärna in radbrytningar på lämpliga ställen när du skriver en kodruta, så slipper man skrolla i sidled...

timediaMedlem sedan maj 2001451 inlägg
#10

Funkar ej, visar fortfarande dubbletter:

sql = "SELECT Distinct Plattor.Id AS Plattid, Pmiljo.Id, Pmiljo.Miljonr, Pmiljo.PU, 
Pmiljo.Bild AS Miljobild, Pmiljo.Brodtxt, Plattor.Bild AS Plattbild, 
Plattor.Namn AS Plattnamn, Plattor.brodtxt FROM Pmiljo INNER JOIN Plattor ON
Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"
timediaMedlem sedan maj 2001451 inlägg
#11

Funkar nu. Hämtade många onödiga värden.

	sql = "SELECT Distinct Plattor.Id AS Plattid, Pmiljo.Bild AS Miljobild, Plattor.Bild AS Plattbild, Plattor.Namn AS Plattnamn FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"
Genererad på 509 ms · cache AV · v20260730165559-full.f96bc7eb