Ik kan hem moeilijk volgen. Kan je een klein voorbeeldje geven wat je precies wilt?
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Ik heb een SQL query die 3 tabellen joined. Een van die tabellen is de tabel artikel. Een andere is inkoopgegevens. Een artikel kan meerdere inkoopgegevens hebben (lees: meerdere leveranciers.) Nou is het de bedoeling dat, als een artikel slechts één keer voorkomt, het gewoon wordt weergegeven (het veld voorkeur bevat dan een N). Op het moment dat een artikel meerdere keren voorkomt, moet alleen die regel genomen worden, waar het veld voorkeur een J bevat...
De where geldt dus eigenlijk alleen voor artikelen die vaker voorkomen. Of een distinct die in het geval van meerdere regels een parameter mee kan krijgen. Of zoiets
Digitaal onderwijsmateriaal, leermateriaal voor hbo
1
2
3
4
5
6
7
8
9
| SELECT veld1, veld2
FROM tabel1
WHERE veld2 = waarde
UNION
SELECT T1.veld1, T1.veld2
FROM tabel1 as T1
WHERE T1.veld1 NOT IN (SELECT T2.veld1
FROM tabel1 as T2
WHERE T2.veld2 = waarde) |
laat maar...
[ Voor 93% gewijzigd door DeverauX op 13-02-2003 15:26 ]
...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones
Verwijderd
1
2
3
4
| SELECT artikelnummer FROM artikeltabel GROUP BY artikelnummer HAVING COUNT(artikelnummer) >= 2 |
denk dat je daar er een end mee moet komen.
[ Voor 17% gewijzigd door Verwijderd op 13-02-2003 15:27 ]
Verwijderd schreef op 13 February 2003 @ 15:26:
Dat kan je doen door gebruik te maken van GROUP BY en HAVING COUNT
denk dat je daar er een end mee moet komen.
Dan heeft ie toch alleen maar degenen die vaker voorkomen
Verwijderd schreef op 13 februari 2003 @ 15:26:
Dat kan je doen door gebruik te maken van GROUP BY en HAVING COUNT
code:
1 2 3 4 SELECT artikelnummer FROM artikeltabel GROUP BY artikelnummer HAVING COUNT(artikelnummer) >= 2
denk dat je daar er een end mee moet komen.
Hiermee ga je idd die artikels gaan weergeven die meer dan 1 keer voorkomen, maar hoe ga je bepalen welke leverancier er moet getoond wroden?
Ttz, je moet ook nog rekening houden met dat veld 'voorkeur', en dat kan je niet in je having gebruiken, maar ook niet in je where.
https://fgheysels.github.io/
Verwijderd
anders met union werken, haal alle producten op waarbij de having maar 1 is, daarna alle andere met join op dat voorkeurveld
Dat zou ik heel graag willen doen, het is echter niet een database die ik gemaakt heb of mag onderhouden. Het is de database van Multivers, een administratiepakket. Exact, maar dan anders...Misschien maar een ideetje... zet default voorkeur op "J".
Ik heb een voorlopige oplossing waarbij ik selecteer op eerst artikelcode en dan AFLOPEND op voorkeur. Ik verwerk vervolgens regel voor regel alles, waardoor dus de regel waar J in voorkeur staat het laatst verwerkt wordt. En dus zullen de verwerkte gegevens die zijn die in de J-regel staan.... Niet de mooiste oplossing, maar voorlopig werkt het op deze manier.
[ Voor 2% gewijzigd door OZ-Gump op 13-02-2003 16:41 . Reden: Nooit mijn type-diploma gehaald... ]