[SQL]volgnummer toevoegen aan record

Pagina: 1
Acties:
  • 1.104 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • -Klimaks-
  • Registratie: Maart 2001
  • Laatst online: 15:38
Ik heb de volgende SELECT-query

code:
1
SELECT waarde1, waarde2 FROM detabel ORDER BY waarde1 ASC;


Nu zou ik graag het volgende als resultaat krijgen.

code:
1
2
3
4
5
6
7
waarde1      waarde2    volgnummer
-----------   -----------  ----------------
  aaa              500        5
  bbb              50         1
  ccc              100        2
  ddd              459        4
  eee              291        3


waarbij volgnummer gegenereerd wordt op basis van een sortering van waarde 2.
Momenteel heb ik dit opgelost met een VBA-functie, maar dit is simpelweg te traag.
Met een duw in de goede richting zou ik al flink geholpen zijn, want ik weet nu gewoonweg niet waar te beginnen.

DB = Access 2000

In those days spirits were brave, the stakes were high, men were REAL men, women were REAL women, and small furry creatures from Alpha Centauri were REAL small furry creatures from Alpha Centauri.
Zaphod in The Hitchhikers Guide To The Galaxy


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Met wat voor database werk je?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Kent access geen auto_increment?

Acties:
  • 0 Henk 'm!

  • -Klimaks-
  • Registratie: Maart 2001
  • Laatst online: 15:38
Voor alle duidelijkheid, de kolom 'volgnummer' bestaat niet in het tabelontwerp en zou dynamisch moeten worden toegevoegd.
En met een auto-increment kolom kom je in de problemen als er een record wordt toegevoegd met een waarde2 die ergens moet tussen passen. De volgnummers moeten zich dan allemaal aanpassen.

In those days spirits were brave, the stakes were high, men were REAL men, women were REAL women, and small furry creatures from Alpha Centauri were REAL small furry creatures from Alpha Centauri.
Zaphod in The Hitchhikers Guide To The Galaxy


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:21
Wat wil je doen met dat volgnummer?
Kan je je recordset niet gewoon sorteren op die waarde2 ?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 23-05 15:21

NMe

Quia Ego Sic Dico.

Als je je recordset sorteert op waarde2, daarna dat volgnummer toevoegt, en dan sorteert op waarde1 heb je volgens mij het resultaat dat je zoekt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • -Klimaks-
  • Registratie: Maart 2001
  • Laatst online: 15:38
Even wat meer uitleg

In een kaft worden controleformulieren gesorteerd op een nummer. Om gemakkelijk alle controleformulieren te zoeken die over een bepaald artikel gaan, moet er vanvoor in de kaft een rapport komen dat ongeveer het volgende overzicht geeft.

code:
1
2
3
4
5
6
7
Artikel 1
     Controleformulier 152                     pagina 3
     Controleformulier 959                     pagina 8
Artikel 2
     Controleformulier 52                      pagina 1
Artikel 3
     ...


Het zijn de paginanummers die ik wil genereren. En op het rapport moet gesorteerd worden op artikelnummer, maar de paginanrs zijn gebaseerd op controleformuliernummers...

In those days spirits were brave, the stakes were high, men were REAL men, women were REAL women, and small furry creatures from Alpha Centauri were REAL small furry creatures from Alpha Centauri.
Zaphod in The Hitchhikers Guide To The Galaxy


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

-Klimaks- schreef op 01 maart 2004 @ 09:42:
Ik heb de volgende SELECT-query

code:
1
SELECT waarde1, waarde2 FROM detabel ORDER BY waarde1 ASC;


waarbij volgnummer gegenereerd wordt op basis van een sortering van waarde 2.
Momenteel heb ik dit opgelost met een VBA-functie, maar dit is simpelweg te traag.
Met een duw in de goede richting zou ik al flink geholpen zijn, want ik weet nu gewoonweg niet waar te beginnen.
Volgens mij is er geen andere mogelijkheid dan een subquery te gebruiken:

code:
1
RowNum: (SELECT Count(*) FROM detabel AS tmp WHERE [tmp].[waarde2]<[detabel].[test2])+1

[ Voor 21% gewijzigd door BtM909 op 01-03-2004 10:50 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • -Klimaks-
  • Registratie: Maart 2001
  • Laatst online: 15:38
@BtM909: Met die query krijg ik idd het gewenste resultaat.
Nu krijg ik echter een foutmelding op het betreffende rapport als ik een groepkoptekst of voettekst wil laten zien. Ik kan gewoon groepeerniveaus aangeven, maar vanaf ik een kop of voettekst laten zien opzet, kan ik het rapport niet meer openen wegens de volgende foutmelding:

code:
1
GROUP-BY component met meerdere niveaus is niet toegestaan in een subquery


Is inmiddels opgelost door First() rond de subquery te plaatsen.

[ Voor 8% gewijzigd door -Klimaks- op 01-03-2004 11:58 ]

In those days spirits were brave, the stakes were high, men were REAL men, women were REAL women, and small furry creatures from Alpha Centauri were REAL small furry creatures from Alpha Centauri.
Zaphod in The Hitchhikers Guide To The Galaxy

Pagina: 1