"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs
Je probleem ligt in het feit dat je naast het met distinct gemarkeerde veld ook nog een ander veld in je query resultaat wilt tonen.
DISTINCT is geen relationele operatie en daardoor is er geen verband meer tussen het gegeven Topic en ID.
DISTINCT is geen relationele operatie en daardoor is er geen verband meer tussen het gegeven Topic en ID.
Probeer dit is, is zo even uit mn blote kop:
Dit zou volgens mij moeten werken, probeer wel even goed te begrijpen waarom het niet werkt... Ik heb niet gekeken, maar dit zal ook wel als een join te doen zijn. Joins zijn vaak wat effcienter. (sub query's worden onderwater vaak omgezet in joins)
code:
1
2
3
4
5
6
7
| select Topic as DisplayStr, ID from Messages where ID IN ( select max(ID) from Messages group by Topic ) |
Dit zou volgens mij moeten werken, probeer wel even goed te begrijpen waarom het niet werkt... Ik heb niet gekeken, maar dit zal ook wel als een join te doen zijn. Joins zijn vaak wat effcienter. (sub query's worden onderwater vaak omgezet in joins)
In access kun je evengoed de '%' wildcards gebruiken, deze zijn nl. de ANSI wildcards.
De DISTINCT werkt zeker goed.... Een distinct zorgt ervoor dat er geen dubbele rijen getoond worden. Aangezien in uw geval Topic (DisplayStr) meerdere keren voorkomt, maar ID uniek is, zal iedere rij een unieke rij zijn. Er zal nl. nooit 2x een rij voorkomen met hetzelfde ID en DisplayStr.
De DISTINCT werkt zeker goed.... Een distinct zorgt ervoor dat er geen dubbele rijen getoond worden. Aangezien in uw geval Topic (DisplayStr) meerdere keren voorkomt, maar ID uniek is, zal iedere rij een unieke rij zijn. Er zal nl. nooit 2x een rij voorkomen met hetzelfde ID en DisplayStr.
https://fgheysels.github.io/
probeer eens:
SELECT Topic as DisplayStr, ID
FROM Messages
WHERE Topic LIKE '%i%'
GROUP BY Topic
SELECT Topic as DisplayStr, ID
FROM Messages
WHERE Topic LIKE '%i%'
GROUP BY Topic
Verwijderd
Hmm, als ik in Access een query maak en bij like % gebruik als wildcard dan krijg ik helemaal niks als resultaat, gebruik ik een * dan doet ie het prima.whoami schreef op 05 september 2002 @ 09:29:
In access kun je evengoed de '%' wildcards gebruiken, deze zijn nl. de ANSI wildcards.
Weet niet wat er gebeurd als ODBC er tussen hangt
Verwijderd schreef op 05 september 2002 @ 09:40:
[...]
Hmm, als ik in Access een query maak en bij like % gebruik als wildcard dan krijg ik helemaal niks als resultaat, gebruik ik een * dan doet ie het prima.
Weet niet wat er gebeurd als ODBC er tussen hangt
Hmm. Strange.
Ff getest, en idd je hebt gelijk.
Met ODBC ertussen werkt het wel.
https://fgheysels.github.io/
Dit was 'm inderdaad gedeeltelijk, de query is nu als volgt:The - DDD schreef op 05 september 2002 @ 01:07:
Probeer dit is, is zo even uit mn blote kop:
code:
1 2 3 4 5 6 7 select Topic as DisplayStr, ID from Messages where ID IN ( select max(ID) from Messages group by Topic )
Dit zou volgens mij moeten werken, probeer wel even goed te begrijpen waarom het niet werkt... Ik heb niet gekeken, maar dit zal ook wel als een join te doen zijn. Joins zijn vaak wat effcienter. (sub query's worden onderwater vaak omgezet in joins)
SQL:
1
2
3
4
5
6
7
8
9
10
| SELECT Topic AS DisplayStr, ID FROM Messages WHERE ID IN ( SELECT MAX( ID) FROM Messages GROUP BY Topic ) AND Topic LIKE '%i%' |
DISTINCT werkt inderdaad anders dan ik dacht te lezen gisteravond
Nog even over de wildcards, met * vind ie niks en met % wel. Komt waarschijnlijk omdat ADO er tussen zit.
In ieder geval iedereen bedankt voor de hulp
"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs
In ADO is de wildcard "gewoon" % alleen binnen Access zelf is * de wildcard._Mo_ schreef op 05 september 2002 @ 10:22:
Nog even over de wildcards, met * vind ie niks en met % wel. Komt waarschijnlijk omdat ADO er tussen zit.
Exact expert nodig?
Pagina: 1