dubbele records in een query filteren

Status
Niet open voor verdere reacties.

manueld

Gebruiker
Lid geworden
12 feb 2012
Berichten
216
ik heb een query die bestaat uit meerdere tabellen. deze geeft alle records weer. in deze query heb ik een veld die op basis van een telquery weergeeft hoeveel records in een bepaald veld dezelfde waarde heeft. nu wil ik uit deze resultaten de dubbele records niet laten tonen maar dubbele records betekend in dit geval dat een bepaald veld gelijke waarden heeft en niet de hele record. hoe kan ik dit er uit filteren in deze query.

mmm mischien maak ik het te moeilijk.

ik heb een query waar een veld in staat die overeen komt met een veld in een andere tabel. ik wil weten hoeveel records er in die andere tabel staan waarvan het veld overeenkomt.
 
Laatst bewerkt:
Misschien kun je met meerdere queries werken
waarbij je eerst per tabel wat uitrekent en daarna in een query alles optelt

of je maakt een hulpkolom aan waarbij je 2 waardes in de kolom (bijvoorbeeld tabelnaam) samenvoegd met de waarde die gefilterd moet worden

Maar zoals ik al zei zonder voorbeeldje is het voor mij moeilijk een beeld te scheppen van het probleem
 
is beetje lastig om voorbeeld db te maken. maar hoe kan ik in de resultaten van een query dubbele waarden in een veld(kolom) weg laten ipv dubbele records want de records zijn niet dubbele maar een bepaald veld wel
 
dus een record heeft in veld 1 een waarde staan maar een 2e record heeft dezelfde waarde in vel 1 staan dus is dit een dubbel record onafhankelijk wat er in de overige velden staan. de overige records wil ik dus niet zien , enkel de eerste
 
Als je een Totalenquery maakt op basis van meerdere velden, dan wordt de combinatie van die velden die uniek is één keer getoond. Als er maar één veld te groeperen is, dan mag je dus maar één veld in de query opnemen, anders zie je per definitie meerdere records. Ik snap alleen je 'telquery' niet... Als je de db niet kunt plaatsen, begin dan in ieder geval met de SQL van de query. Zo gaat het héél lang duren voordat je een zinnig antwoord krijgt, omdat we geen idee hebben (ik althans) waar we het moeten zoeken.
 
ik heb een tabel artikelen. hierin staan alle artikelen die we hier hebben. ik heb een tabel voorraad waar ieder product als uniek voorraad product instaat. in de voorraad tabel komt een bepaald product dus bijvoorbeeld 5 keer voor maar deze 5 hebben wel hun eigen eigenschappen als inkoop datum en magazijnlokatie. in beide tabellen vind je de artikelcode die in de eerste uniek is en in de tweede natuurlijk vaker voorkomt.

wat ik wil is dat ik in een query de gegevens verzamel uit de eerste tabel en het aantal producten op voorraad uit de tweede tabel. waarbij ik als eindresutaat dus de eerste tabel krijg met een extra veld waarin de voorraad aantallen in staan.

ik heb met een query de voorraad tabel kunnen tellen waar ik als resultaat in veld een het artikel nummer en in veld 2 het aantal krijg. nu wil ik deze dus koppelen aan de andere query om het gewensde resultaat te krijgen. maar dat gaat niet goed
 
Wat wil je met het aantal? Lijkt mij nutteloze informatie. Je zou eerder geïnteresseerd moeten zijn in de hoeveelheid vooraad. Het lijkt mij een rechttoe-rechtaan query, waarbij je groepeert op de velden uit tArtikelen, en verder groepeert op Locatie. Ik zou daar zelf een (gekoppelde) tabel voor gebruiken, maar dat hangt natuurlijk ook van de situatie af. Maar dat maakt voor het groeperen niks uit. Enige vraag is: hoe sla je de mutaties op? Tenzij je alleen maar inkoopt (en de voorraad dus alleen maar groeit) of je alleen maar verkoopt (waarbij de voorraad dus alleen maar afloopt tot het magazijn leeg is) moet je rekening houden met de mutatie soorten. Toevoegen en Uitnemen dus. Hoe heb je dat geregeld?
 
Die query doet toch wat je wilt?
 
met die voorbeeld db kan ik denk ik uit de voeten al ga ik het wel iets anders doen het geeft mij wel tegelijkertijd een oplossing voor een ander probleem.

in princiope wilde ik elk product als uniek record opslaan om daarmee traceerbaarheid te behouden (een onderdeel met een serie nummer koppelen aan een klant of eindproduct) ik ga een aantal veld in de voorraad tabel toevoegen waarbij de aantallen standaard 1 zijn. maar voor de producten die bv op rol zitten kan ik het aantal meters per rol opgeven. ik ga hier denk ik wel uit komen. bedankt voor jullie sipele maar doeltreffende oplossing. ik laat nog weten of het werkelijk gelukt is.
 
In beginsel heb je, als je het goed opzet, helemaal geen tabel Voorraad nodig, want <Inkoop>-<Verkoop>=<Voorraad>. Dus op basis van je transacties kun je simpel de actuele voorraad berekenen. Alleen klopt die zelden als je een voorraad controle uitvoert. En dan moet je dus met handmatig de verschillen kunnen verwerken. Die kun je dan wel weer kloppend maken door een record toe te voegen o.v.v. voorraadcorrectie o.i.d.
Door van je transacties uit te gaan voorkom je dus een dubbele boekhouding; met een Inkoop tabel en een Voorraad tabel moet je hetzelfde gegeven twee keer invoeren. Een voorraad tabel wordt wèl weer interessant als je met meerdere magazijnen werkt, en je dus op verschillende plekken verschillende voorraden hebt. Als het niet nodig is, zou ik dus geen voorraad bijhouden. Maar ik ken je situatie uiteraard niet.
 
je hebt helemaal gelijk maar bij ons is hetvan vele producten belangrijk om het unieke product in de database te hebben. op deze wijze is de historie bekend (waneer is het product gemaakt, welke partij hoort hij bij, welke inkoopprijs had hij, in welk eind product is hij terecht gekomen.) vandaar dat ik de voorraad niet als cijfer in een record heb maar als record per item. ik heb idd een veld aantal toegevoegd die standaard de waarde 1 krijgt. vervolgens doe ik een som zoals is aangegeven in het voorbeeld. hij telt dus bij de unieke producten de records (omdat de waarde dan 1 is) maar bij producten op rol telt hij de meters. nu kan ik dus de rol als uniek item invoegen en de meters als aantal. nu hou ik wel de traceerbaarheid per rol en hoef niet bij een rol van 1000 meter 1000 records aan te maken.

het werkt goed en scheelt mij een hoop andere moeilijke problemen. problem solved
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan