Voor mijn afstudeerproject heb ik oa. Een kleine database gebouwd om wat overzicht over mijn data te houden.
Ik ben nu echter met een query bezig waar ik niet helemaal uitkom.
Bij deze query gaat het om 1 tabel met de kolommen: cellid, vegcode en coverage.
1 Cellid kan meerdere vegcode bevatten die elk een eigen coverage hebben.
Nu zou ik graag het aantal cellen willen weten waar “sg” de maximum coverage is maar waarbij de coverage “bs” niet meetelt.
(“sg” staat voor short grass, “bs” voor bare soil, en die laatste is niet relevant als coverage in mijn geval).
De (een) query voor het aantal cellen waar “sg” de maximum coverage heeft (grootste coverage in die cel) is:
De (een) werkende query om de cellid’s, vegcodes en coverages te selecteren zonder “bs” is:
Deze 2 queries zou ik dus moeten combineren. Maar ik kom er niet uit.
In eerste instantie dacht ik om de 2e query als subquery in de 1ste in te bouwen maar dat werkt niet. Ook door de 2e query als subquery in het FROM statement van de 1ste query in te bouwen ging niet, of lukte me niet (ben nog redelijk newbie in SQL).
Overigens werk ik in MS Access 4.1 dus subqueries werken wel.
Ik ben nu echter met een query bezig waar ik niet helemaal uitkom.
Bij deze query gaat het om 1 tabel met de kolommen: cellid, vegcode en coverage.
1 Cellid kan meerdere vegcode bevatten die elk een eigen coverage hebben.
Nu zou ik graag het aantal cellen willen weten waar “sg” de maximum coverage is maar waarbij de coverage “bs” niet meetelt.
(“sg” staat voor short grass, “bs” voor bare soil, en die laatste is niet relevant als coverage in mijn geval).
De (een) query voor het aantal cellen waar “sg” de maximum coverage heeft (grootste coverage in die cel) is:
code:
1
2
3
4
5
| SELECT count(vegetation.cellid) FROM vegetation WHERE (((vegetation.coverage) In (select max (vegetation.coverage) FROM vegetation GROUP BY vegetation.cellid)) AND ((vegetation.vegcode)="sg")); |
De (een) werkende query om de cellid’s, vegcodes en coverages te selecteren zonder “bs” is:
code:
1
2
3
4
| SELECT vegetation.cellid, vegetation.coverage, vegetation.vegcode FROM vegetation WHERE vegetation.vegcode <> "bs" GROUP BY vegetation.cellid, vegetation.coverage, vegetation.vegcode |
Deze 2 queries zou ik dus moeten combineren. Maar ik kom er niet uit.
In eerste instantie dacht ik om de 2e query als subquery in de 1ste in te bouwen maar dat werkt niet. Ook door de 2e query als subquery in het FROM statement van de 1ste query in te bouwen ging niet, of lukte me niet (ben nog redelijk newbie in SQL).
Overigens werk ik in MS Access 4.1 dus subqueries werken wel.

