Ska försöka förklara................. Hej Mattias, Nästan rätt, men det är svårare ändå......det var jag som förklarade luddigt. Jag gillar utmaningar :-) Ha ha, så enkelt. Gjorde ett snabbt test, kan ha missat något men jag tror det ska fungera med den här SQL-satsen också. Mitt förslag: Har inte provat ännu, men jag är säker på att det fungerar.Ta största från tabell 2 ihop med tabell 1
Join ( ID-ID )
Tabell 1
ID Felorsak
-----------------------
1 Balk fel
2 Balk fel
3 Fel Ritning
Tabell 2
ID OrsaksAvd Räknare
-----------------------------------
1 1040 0
1 1050 1
2 1040 2
3 500 3
3 600 4
Jag vill ha fram en fråga som tar med fälten
ID, Felorsak, Orsaksavd, Räknare
Men.... Jag vill bara ha 1 record i retur, det högsta nummret under Räknare där ID = 3.
Jag kan inte få ihop det, någon annan som kan ??
Hoppas att ni förstår
Mvh
Mattias GustavssonSv: Ta största från tabell 2 ihop med tabell 1
Om jag förstår dig rätt så vill du i exemplet att resultatet ska vara...
ID Felorsak OrsaksAvd Räknare
3 Fel ritning 600 4
Det åstakommer du med en fråga enligt nedan:
SELECT TOP 1 [Tabell 1].ID, [Tabell 1].Felorsak, [Tabell 2].OrsaksAvd, [Tabell 2].Räknare
FROM [Tabell 1] INNER JOIN [Tabell 2] ON [Tabell 1].ID = [Tabell 2].ID
WHERE ((([Tabell 1].ID)=3))
ORDER BY [Tabell 2].Räknare DESC;
Micke MicrosoftSv: Ta största från tabell 2 ihop med tabell 1
Jag vill att det skall bli såhär.......
ID Felorsak OrsaksAvd Räknare
----------------------------------------------
1 Balk Fel 1050 1
2 Balk Fel 1040 2
3 Fel Ritning 600 4
Nu tror jag att det blir lite tuffare, eller ???
/MattiasSv: Ta största från tabell 2 ihop med tabell 1
Gör först en fråga baserad enbart på Tabell 2.
Gruppera på ID och sätt MAX för OrsaksAvd.
Resultat...
ID MaxOfOrsaksAvd
1 1050
2 1040
3 600
SQL-sats för ovanstående:
SELECT [Tabell 2].ID, Max([Tabell 2].OrsaksAvd) AS MaxOfOrsaksAvd
FROM [Tabell 2]
GROUP BY [Tabell 2].ID;
Gör sedan en ny fråga där du har med Tabell 1
och ovanstående "underfråga" (som jag döpte till Query2) samt Tabell 2.
ID i Tabell 1 knyter du till ID i Query2 OCH till ID i Tabell 2. Samtidigt knyter du ihop MaxOfOrsaksAvd från Query2 till OrsaksAvd i Tabell 2.
SQL-satsen för ovanstående:
SELECT [Tabell 1].ID, [Tabell 1].Felorsak, [Tabell 2].OrsaksAvd, [Tabell 2].Räknare
FROM ([Tabell 1] INNER JOIN Query2 ON [Tabell 1].ID = Query2.ID) INNER JOIN [Tabell 2] ON ([Tabell 1].ID = [Tabell 2].ID) AND (Query2.MaxOfOrsaksAvd = [Tabell 2].OrsaksAvd);
Och resultatet...
ID Felorsak OrsaksAvd Räknare
1 Balk fel 1050 1
2 Balk fel 1040 2
3 Fel ritning 600 4
Börjar vi närma oss ?
Micke MicrosoftSv: Ta största från tabell 2 ihop med tabell 1
Jag hade gjort precis som du, det enda jag glömde var att knyta MaxOfID till varandra.
:-)
Någon som vet om man kan få detta i en fråga ??
Jag kör access databas mot VB och skulle vilja ha så lite frågor som möjligt i databasen.
STORT Tack för hjälpen
/MattiasSv: Ta största från tabell 2 ihop med tabell 1
SELECT Tabell1.ID, Tabell1.Felorsak, Tabell2.OrsakAvd, Tabell2.Räknare
FROM Tabell1 INNER JOIN Tabell2 ON Tabell1.ID = Tabell2.ID
GROUP BY Tabell1.ID, Tabell1.Felorsak, Tabell2.OrsakAvd, Tabell2.Räknare
HAVING Räknare In (Select Max(Räknare) From Tabell2 Where tabell2.id = tabell1.id);
MVH
JanneSv: Ta största från tabell 2 ihop med tabell 1
SELECT Tabell1.ID, Tabell1.Felorsak, Tabell2.OrsakAvd, Tabell2.Räknare
FROM Tabell2 LEFT JOIN Tabell1 ON Tabell2.ID = Tabell1.ID
WHERE Tabell2.Räknare In (SELECT Max(Sub.Räknare) FROM Tabell2 As Sub GROUP BY Sub.ID)Sv: Ta största från tabell 2 ihop med tabell 1
Man lär sig otroligt mycket på att studera era svar.
Tack igen
Med supervänlig hälsning
Mattias