Access SQL DISTINCT

Status
Niet open voor verdere reacties.

JeroenD92

Nieuwe gebruiker
Lid geworden
21 okt 2013
Berichten
3
Hallo,

ik heb de volgende query gemaakt:

[sql]SELECT DISTINCT(I.ITENUM) AS kodenr, I.ITENAM AS [ITEM data Benaming], GEW.Aantallen AS Aantal, I.KLSKOD AS klas, [I.MATGEW]/1000 AS [Gew tot], I.MATSRTPSS AS [Materiaal MWL-nr]
FROM ([Order 616915] AS OD LEFT JOIN IMFD AS I ON OD.ITEMNUMM = I.ITENUM) LEFT JOIN [RP25B Gewichten - Tabel] AS GEW ON OD.ITEMNUMM = GEW.Kodenr
WHERE ((GEW.Aantallen) Is Not Null And (GEW.Aantallen)<>0.01) And ((I.matgew) Is Not Null) And ((I.ITESRT)<>"S") And ((I.KMPSRT) Is Null) and ([I.KLSKOD] not between 1000 and 1999);[/sql]

Deze sql query zou van alle kodenr s ( I.ITENUM) maar 1 waarde moeten weergeven (ipv dubbele waardes).
Sommige kodenr s staan er wel een keer in, maar sommige kodenr s staan er twee keer of drie keer in (dit kan ik oa zien aan het totaal aantal records).
Ik had even getest wanneer deze dubbele waardes blijven staan, dit is na het toevoegen van GEW.Aantallen.
De kolom aantallen heeft dan ook verschillende waardes bij de verschillende kodenr s.

Hopelijk kan iemand me helpen, als je meer info nodig hebt kan je het natuurlijk altijd vragen!

Alvast bedankt.

Jeroen
 
Laatst bewerkt door een moderator:
DISTINCT werkt alleen op hele rijen. als het niet uitmaakt welke "gew.aantallen" op de rij komt te staan kun je MIN en GROUP BY gebruiken
 
Ah oke, z'n vermoeden had ik al een beetje.

Het maakt nou juist wel uit.
Het probleem is, dat Acces om de een of andere reden een kodenr er vaker uit haalt met verschillende aantallen, terwijl een kodenr er maar één keer instaat en dus ook maar één aantal heeft.

(ik vindt het lastig om uit te leggen, hopelijk begrijp je wat ik bedoel)
 
Het probleem is, dat Acces om de een of andere reden een kodenr er vaker uit haalt met verschillende aantallen, terwijl een kodenr er maar één keer instaat en dus ook maar één aantal heeft.

JOIN koppelt records en je krijgt alle data uit alle tabellen 1x voor elke koppeling. Dus als je drie tabellen koppelt en in de tweede tabel staan twee records die passen bij een record uit de eerste tabel, en in ed derde staan vier records die passen bij de records uit de tweede, dan krijg je 1x2x4 =8 maal de data uit de eerste tabel.

DISTINCT is vrijwel nooit de oplossing want het probleemis vrijwel nooit dat de dat dubbel voorkomt.

De vraag is nu dus: wat wil je in die query zien, en waarom wil je sommige gegevens, perse eenmalig zien?
 
Hallo,

Ik heb de oorzaak gevonden. Het schijnt zo te zijn dat enkele kodenr's meerdere aantallen kunnen hebben, in plaats van dat de aantallen gewoon bij elkaar worden opgeteld.. raar maar het schijnt zo te zijn.

Ik wil de mensen die geprobeerd hebben om me te helpen bedanken!

mvg Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan