Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[SQL / MS Access] unieke nummers zoeken

Pagina: 1
Acties:

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 16-09 20:30
Ik heb een tabel, waarin een uniek autonummerings id staat, een datum en een identificatienummer.

Dit identificatienummer bevat een of meerdere records. een identificatienummer is een set.

Ik wil een query gaan uitvoeren met C#, via ADO naar Access om zo een maximaal aantal verschillende identificatienummers op te halen. Stel ik heb 3 identificatienummers, A ,B en C en 10 records, met id 1 tm 10. Record 1 tm 8 zijn aan A gekoppeld, record 9 aan B, en record 10 aan C.

IDIdentificatieRecord
1Ar1
2Ar2
3Ar3
4Ar4
5Ar5
6Ar6
7Ar7
8Ar8
9Br9
10Cr10

(de record kolom is een string en heeft niets met ID te maken, dit is alleen ter illustratie.
Nu wil ik bijvoorbeeld 2 unieke identificatienummers hebben. Is het mogelijk om dat te realiseren.

Hier staat info over distinct
Zo kun je wel het aantal unieke identificatienummers tellen. Dus als ik hem op de bovenstaande tabel uitvoer wordt dat 3. Maar kan ik er ook een eis aan stellen: dus max 2 ofzo?

if broken it is, fix it you should


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:05
TOP

-> PRG

[ Voor 92% gewijzigd door whoami op 01-08-2007 11:18 ]

https://fgheysels.github.io/


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 16-09 20:30
Als ik top gebruik krijg ik toch alleen de top zoveel? Als ik dan group by erbij gebruik heb ik niet alle records apart, maar gegroepeerd toch?

group by
neem de tabel van link hierboven. Als ik desc op company sorteer en de top 1 wil. Wil ik alle records van de company W3Schools. Dus 1 record met value 5500 en 1 met 7100. En niet beide samen.

Dat kan toch niet met top?
Of moet ik dan meerdere queries gaan uitvoeren?

[ Voor 33% gewijzigd door elgringo op 01-08-2007 11:33 ]

if broken it is, fix it you should


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:05
Nu wil ik bijvoorbeeld 2 unieke identificatienummers hebben. Is het mogelijk om dat te realiseren.
Ja, dat kan:
code:
1
select distinct top 2 identificatie from tabel
Wil ik alle records van de company W3Schools. Dus 1 record met value 5500 en 1 met 7100.
Eh? dan zal je gewoon je id's moeten gaan bepalen, en dan een query doen die filtert op dat id ?

Evt kan je met een subquery aan de slag.
code:
1
select * from tabel where company = ( select top 1 company from tabel order by company desc )

[ Voor 51% gewijzigd door whoami op 01-08-2007 11:42 ]

https://fgheysels.github.io/


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 16-09 20:30
whoami schreef op woensdag 01 augustus 2007 @ 11:39:
[...]

Ja, dat kan:
code:
1
select distinct top 2 identificatie from tabel



[...]
Eh? dan zal je gewoon je id's moeten gaan bepalen, en dan een query doen die filtert op dat id ?

Evt kan je met een subquery aan de slag.
code:
1
select * from tabel where company = ( select top 1 company from tabel order by company desc )
Die subquery werkt niet:
code:
1
SELECT * FROM Producten WHERE Identificatie=( SELECT TOP 2 Identificatie WHERE (Status=0 OR Status=5) ORDER Identificatie ASC )

(status is een kolom die er eigenlijk niet toe doet)

en de fout van c#:
{"Er zijn een of meer fouten opgetreden tijdens het verwerken van de opdracht."} System.Exception {System.Data.OleDb.OleDbException}
EDIT: Erger nog top werkt niet:
code:
1
SELECT TOP 2 Identificatie FROM Producten WHERE (Status=0 OR Status=5) ORDER BY Identificatie ASC "


Geeft ook een foutmelding

EDIT2

Hij werkt nu wel, was een fout ergens, maar weet niet waar (rebuild deed wonderen)

[ Voor 12% gewijzigd door elgringo op 01-08-2007 12:21 ]

if broken it is, fix it you should


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
elgringo schreef op woensdag 01 augustus 2007 @ 12:07:
[...]


Die subquery werkt niet:
code:
1
SELECT * FROM Producten WHERE Identificatie=( SELECT TOP 2 Identificatie WHERE (Status=0 OR Status=5) ORDER Identificatie ASC )

(status is een kolom die er eigenlijk niet toe doet)

Geeft ook een foutmelding
als je subquery meerdere resultaten bevat (in jouw geval 2) dan moet je IN gebruiken ipv =

[ Voor 15% gewijzigd door P.O. Box op 01-08-2007 12:19 ]


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 16-09 20:30
Het lijkt erop dat dat hem was. Ik ga nog ff checken of hij het doen zoals gewenst.

if broken it is, fix it you should

Pagina: 1