NULL velden invullen

Status
Niet open voor verdere reacties.

marka

Gebruiker
Lid geworden
14 jul 2009
Berichten
333
Ik heb een query in access gemaakt die velden geeft die in sommige gevallen leeg zijn. Nu is dit logisch, omdat in het bronbestand deze velden ook leeg zijn.

Nu wil ik het volgende bereiken.

Wanneer bijvoorbeeld bij artikel 2314 in de maand januari 2010 geen inkoopprijs beschikbaar is moet deze in december 2009 gaan zoeken naar de hoogste inkoopprijs van die maand.

Code:
SELECT [(1) Selectie Query kostprijs].Artikel, [(1) Selectie Query kostprijs].Kostprijs, [(2) Selectie Query Inkoopprijs].inkoopprijs, [(1) Selectie Query kostprijs].Periode, [(1) Selectie Query kostprijs].Datum, Dollarkoers.LaatsteVankoers_goederen
FROM ([(1) Selectie Query kostprijs] LEFT JOIN [(2) Selectie Query Inkoopprijs] ON ([(1) Selectie Query kostprijs].Periode = [(2) Selectie Query Inkoopprijs].Periode) AND ([(1) Selectie Query kostprijs].Artikel = [(2) Selectie Query Inkoopprijs].[artikel$])) LEFT JOIN Dollarkoers ON [(1) Selectie Query kostprijs].Periode = Dollarkoers.Periode;
 
Je zou een aparte query kunnen maken die de laatste inkoopprijs van elk artikel opzoekt, en deze query aan je eigenlijke query toevoegen. Met een IIF kun je dan verwijzen naar het veld [LaatsteInkoopprijs] uit die query.
 
Het moet een overzicht over maanden worden. Hoe kan ik dan bijvoorbeeld wanneer ik in jan 2010 iets mis naar dec 2009 verwijzen (er vanuit gaande dat daar een waarde beschikbaar is) en voor mei 2010 naar april 2010 en dit in hetzelfde overzicht.
 
Als je naar de voorlaatste maand wilt verwijzen, dan pak je het jaar erbij, en de maand-1.
Dus extra kolommen maken met Year([Datumveld]), Month([Datumveld]) en filteren op basis van je formulierdatum.
Of in de 'opzoekquery' een samengesteld datumveld maken, en die ook in je werkquery maken, maar dan met een maand minder. Dan kun je ze aan elkaar koppelen op basis van dit tekstveld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan