Avatar billede fredeb Nybegynder
11. januar 2009 - 15:17 Der er 15 kommentarer

Finde den største værdi i en række næsten ens dataposter

Hej Eksperter
Jeg har et spørgsmål der går på at finde de poster med den største værdi for en række næsten identiske data.
Eksempel jeg skal bruge det ordre nr som har det største Linjenr

Linjenr    Order nr
1    25000933
1    25002613
2    25002613
3    25002613
4    25002613
5    25002613
1    25008758
2    25008758
3    25008758
1    25008759
2    25008759
3    25008759
4    25008759
5    25008759
6    25008759
7    25008759
8    25008759
1    25008760

Håber der er nogen derude der kan hjlæpe
Avatar billede mugs Novice
11. januar 2009 - 15:54 #1
SELECT TOP 1 Tabel1.linienr, Tabel1.ordrenr
FROM Tabel1
ORDER BY Tabel1.linienr DESC;
Avatar billede fredeb Nybegynder
11. januar 2009 - 16:12 #2
Det resulterer i at jeg får e´n række med det højeste linjenr og det tilhørende ordernr. Det jeg skal bruge er alle order nr med det højeste linje nr

Håber det bedre forklarer hvad jeg søger
Avatar billede terry Ekspert
11. januar 2009 - 16:21 #3
selecting top 1 an donly sorting on Linjenr  will return 

8    25008759

because there is only one record with Linjenr = 8
If there was other records with Linjenr = 8 then TOP 1 will return ALL records with Linjenr = 8.

So if you want only one DISTINCT record then you must sort on both fields which are selected and also select DISTINCT

Example:
SELECT DISTINCT TOP 1 Table1.[Linjenr], Table1.[OrdreNr]
FROM Table1
ORDER BY Table1.[Linjenr] DESC , Table1.[OrdreNr] DESC;
Avatar billede terry Ekspert
11. januar 2009 - 16:25 #4
"Det jeg skal bruge er alle order nr med det højeste linje nr"

There is only one record with Linjenr = 8, so mugs answer WILL return more than one record IF there were others with linjenr = 8.
Avatar billede fredeb Nybegynder
11. januar 2009 - 16:33 #5
Jeg skal bruge order nr 25002613 med tilhørende linje nr 5 og order 25008758 med tilhørende linje nr 3  osv. og det skal altid være det største linje nr med det tilhørende order nr
Avatar billede terry Ekspert
11. januar 2009 - 16:36 #6
You didnt say that in your question!
Avatar billede terry Ekspert
11. januar 2009 - 16:37 #7
SELECT Table1.[Linjenr], Max(Table1.[OrdreNr]) AS MaxOfOrdreNr
FROM Table1
GROUP BY Table1.[Linjenr];
Avatar billede fredeb Nybegynder
11. januar 2009 - 16:38 #8
nej men det var det jeg mente
Avatar billede terry Ekspert
11. januar 2009 - 16:42 #9
Forget that last example
Avatar billede fredeb Nybegynder
11. januar 2009 - 16:55 #10
OK
Avatar billede terry Ekspert
11. januar 2009 - 17:04 #11
With the fields/data you show there is no way to be sure that you will get the records you expect acccording to what you write here 11/01-2009 16:33:53

If I understand what you say correctly you want to see the first in the list above for each LinjeNr. If you have an autonumber in th etable then thi si spossible becua s thrn you can find th erecord with the lowest Autonumber value but as it is now you cant.
Avatar billede terry Ekspert
11. januar 2009 - 17:06 #12
I can give you the highest or lowest ordrenr (Value) for each Linjenr but not the first in the list.
Avatar billede fredeb Nybegynder
11. januar 2009 - 17:09 #13
Den skal vendes om så virker det

SELECT [tabel1].[Order nr], Max([tabel1].Linjenr) AS MaxOfOrdreNr
FROM [tabel1]
GROUP BY [tabel1].[Order nr];
Avatar billede mugs Novice
11. januar 2009 - 17:17 #14
Ret beset taler du om en første og sidste record. Sådanne findes ikke i Access. En tabel indeholder en vis mængde poster hvor een post er den første lige nu, men den sidste hvis du sorterer tabellen anderledes. Men det er naturligvis muligt at finde den post hvis værdi repræsenterer henholdvis den største eller mindste værdi.
Avatar billede terry Ekspert
11. januar 2009 - 17:18 #15
Well if you say that your SQL gives you what you want then that great  but I dont see how it can. Your SQL returns this

OrdreNr    MaxOfOrdreNr
25000933    1
25002613    5
25008758    3
25008759    8
25008760    1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester