Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Inner join

Postades av 2008-05-27 20:04:37 - Johan Bergmark, i forum access, Tråden har 13 Kommentarer och lästs av 1079 personer

Jag gör en inner join från tre tabeller och visar utvalda data i en listruta i ett formulär, problemet är att jag får upp en massa dubblerade värden pga min inner join...kan jag på något sätt göra en sortering där jag ignorerar att data finns i flera tabeller och bara visar ett värde av varje från tex. tabell 1

(Jag har ett objektnr som finns i två tabeller, min inner join visar då dessa i listrutan)


Svara

Sv: Inner join

Postades av 2008-05-27 22:04:19 - Per Ljung

Pröva med att använda SELECT DISTINCT...

// Per


Svara

Sv: Inner join

Postades av 2008-05-28 08:34:46 - Tomas Granlund

Hur ser din SQL-sats ut?


Svara

Sv:Inner join

Postades av 2008-05-28 12:07:44 - Johan Bergmark

Så här ser SQL-satsen ut, och att köra en Distinct här går ju inte

With Me.lbListruta1
.RowSource = _
"SELECT tInstrument.ID, tInstrument.nr, tInstrument.Datum, tkomb7.AC, tkomb7.BC, tInstrument.Funktion, " & _
"tkal.datum, tInstrument.Fabrikat, tInstrument.Modell, tInstrument.Instrumenttyp, " & _
"tInstrument.Instrumentuppgift " & _
"FROM (tKomb7 INNER JOIN tInstrument ON tKomb7.Komb_Id = tInstrument.Komb_Id) INNER JOIN tKal ON tInstrument.Id = tKal.Komb_Id " & _
" ORDER BY tInstrument.ID desc"
.ColumnHeads = True
.Requery
End With

När denna läses upp till formuläret så får jag dubbletter på "tInstrument.nr" då denna finns både i tabellerna tInstrument och i tKal


Svara

Sv: Inner join

Postades av 2008-05-28 12:51:53 - Jan Bulér

En liten fundering bara,

i första INNER JOINen skriver du

...ON tKomb7.<b>Komb_Id</b> = tInstrument.<b>Komb_Id</b>

och i den andra

...ON tInstrument.<b>Id</b> = tKal.<b>Komb_Id</b>

stämmer det, borde det inte vara
...ON tInstrument.<b>Komb_Id</b> = tKal.<b>Komb_Id</b>
i den andra inner joinen eller är tInstrument.Id och tInstrument.Komb_Id samma värde?

och i så fall borde väl frågan se ut så här

SELECT tInstrument.ID, tInstrument.nr, tInstrument.Datum, tKomb7.AC, tInstrument.Funktion, tKal.datum, tInstrument.Fabrikat, tInstrument.Modell, tInstrument.Instrumenttyp, tInstrument.Instrumentuppgift
FROM tKal INNER JOIN (tInstrument INNER JOIN tKomb7 ON tInstrument.komb_Id = tKomb7.komb_Id) ON tKal.Komb_Id = tKomb7.komb_Id;


Svara

Sv: Inner join

Postades av 2008-05-28 14:01:39 - Tomas Granlund

Har jag fattat det hela rätt om jag tror att
* tInstrument.nr är unik
* du med ovanstående sql får flera poster med samma tInstrument.nr
?

I så fall borde du kunna köra nåt i stil med följande monstrositet (varför kan inte bara access följa nån slags standard för sql?)

SELECT MassaJox
FROM ((SELECT FIRST(AC), FIRST(BC), Komb_id FROM tKomb7 GROUP BY Komb_id) komb7 INNER JOIN tInstrument ON komb7.Komb_id = tInstrument.Komb_id)
INNER JOIN (SELECT FIRST(datum), Komb_id FROM tKal GROUP BY Komb_id) k ON k.Komb_id = tInstrument.Id


(Hur kommer det sig att kolumnerna som joinas över heter så skumma saker?)


Svara

Sv:Inner join

Postades av 2008-05-28 15:27:49 - Johan Bergmark

Svar:

Jag har 3 tabeller.
Tabell 1. tKomb7 = placering av instrument (Komb_id) flera instrument kan ha samma placering.

Tabell 2. tInstrument = Typ av instrument, flera typer har alltså samma placering (Komb_id från tabell 1) och för att särskilja de individa instrumenten så ger jag dessa ett löpnummer (ID räknare)

Tabell 3. tKal = Ändringar på individuella instrument (ID från tabell 2 blir Komb_id i tKal)där använder jag löpnr från tabell tInstrument för att indentifiera vilket instrument och lägger till en ny rad med uppgifter som datum varje gång instrumentet uppdateras.

Tabell 2 innehåller alltså grunddata för instrumentet, det är bara den jag vill visa, som det är nu så hämtar jag ett datum från tabell 3 och får på köpet med mej ytterligare en post av samma instrument..??

Den enda ändringen som jag behöver få till är att läsa in instrumentet från tabell 2 och datum från tabell 3..

Instrument.nr är mycket riktigt ett unikt nummer, Joinerna heter lite skumma saker för att det fanns enmassa unika kombinationer en gång i tiden (Unika kombinationer=Komb_id) ;)


Svara

Sv: Inner join

Postades av 2008-05-28 21:40:28 - Johan Bergmark

Försökte använda ditt förslag på SQL-sats men fär en mängd felmeddelande och då koncentrerat just runt "Select"


Svara

Sv:Inner join

Postades av 2008-05-29 07:53:05 - Åsa Furubom

Skulle du kunna lista vilka primärnycklar samt främmande nycklar du har per tabell? Distinct löser ju problem med dubbletter alt. group by men sen är ju frågan varför du får dubbletter. Mitt tips är att du skriver select tabellnamn1.*, tabellnamn2.*, tabellnamn3.* för att se vad det egentligen är som skiljer det som listas åt för nåt måste det ju vara som skiljer om du får dubbletter.

Joinar man på fel fält eller glömmer att joina på nåt fält som borde joinas på så kan det också ge dubbletter. Många till många kopplingar kan också se ut att ge dubbletter.

Man kan ju få bort dubbletter i rapporten genom att gruppera på det fält som är unikt i rapporten och strunta i att lista detaljerna. Då sållar rapporten bort dubbletter.


Svara

Sv: Inner join

Postades av 2008-05-29 09:01:38 - Johan Bergmark

Vad skulle man kunna göra med denna SQL-sats om man skulle använda sig av Distinct:

With Me.lbListruta1
.RowSource = _
"SELECT tInstrument.ID, tInstrument.nr, tInstrument.Datum, tkomb7.AC, tkomb7.BC, tInstrument.Funktion, " & _
"tkal.datum, tInstrument.Fabrikat, tInstrument.Modell, tInstrument.Instrumenttyp, " & _
"tInstrument.Instrumentuppgift " & _
"FROM (tKomb7 INNER JOIN tInstrument ON tKomb7.Komb_Id = tInstrument.Komb_Id) INNER JOIN tKal ON tInstrument.Id = tKal.Komb_Id " & _
" ORDER BY tInstrument.ID desc"
.ColumnHeads = True
.Requery
End With


Svara

Sv:Inner join

Postades av 2008-05-29 17:06:28 - Åsa Furubom

Hur menar du skulle kunna göra? Testa att lägga in select distinct och se vad som händer. Ju färre fält du lägger ut desto färre poster kommer du antagligen att få.


Svara

Sv: Inner join

Postades av 2008-05-29 23:04:27 - Johan Bergmark

Händer just ingenting, inga resultat presenteras i listrutan... funderar på om man måste ha paranteser när man gör en SELECT DISTINCT ?


Svara

Sv:Inner join

Postades av 2008-06-02 14:02:39 - Åsa Furubom

Hur ser din select ut med distinct? Jag vet inte riktigt om det är nåt special i just Access syntaxen men det står säkert i hjälpen isåfall.

I vanliga fall skriver man nåt i still med Select distinct fält1, fält2 from tabell1 osv....


Svara

Sv: Inner join

Postades av 2008-06-04 08:56:32 - Johan Bergmark

Så här ser den ut, men denna returnerar exakt samma värde som den gör utan Distinct???


With Me.lbListruta1
.RowSource = _
"SELECT Distinct tInstrument.ID, tInstrument.nr, tInstrument.Datum, tkomb7.AC, tkomb7.BC, tInstrument.Funktion, " & _
"tkal.datum, tInstrument.Fabrikat, tInstrument.Modell, tInstrument.Instrumenttyp, " & _
"tInstrument.Instrumentuppgift " & _
"FROM (tKomb7 INNER JOIN tInstrument ON tKomb7.Komb_Id = tInstrument.Komb_Id) INNER JOIN tKal ON tInstrument.Id = tKal.Komb_Id " & _
" ORDER BY tInstrument.ID desc"
.ColumnHeads = True
.Requery
End With


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
443
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies