query maken met som met als A datum+8, als B datum +15

Status
Niet open voor verdere reacties.

Timpoe

Nieuwe gebruiker
Lid geworden
17 mei 2018
Berichten
3
Vorige maand heb ik een cursus Access gevolgd en ik ben nu bezig met mijn eerste database.

Daarbij loop ik tegen het volgende op;
We hebben een monster die voor verschillende testen ingezet word.
Er zijn 3 testen A, B en C.
Niet ieder monster heeft dezelfde testen en de testen duren ook een verschillende aantal dagen.
A- 8 dagen
B- 15 dagen
C- 2 dagen
Nu zouden we graag willen dat een Query berekend op welke datum de testen klaar zijn als je inzet datum en type test invult.

We hebben dan de kolommen uit de tabel waarmee gerekend moet worden;

Test Datuminzet

Ik dacht dan iets van; DatumTestAfgerond; als test A DatumInzet + 8, als test B datumInzet+15.

Geen idee of dit mogelijk is en zo niet hebben jullie dan tips hoe dit anders te doen.

Alvast bedankt.
 
Laatst bewerkt:
Dag Timpoe,

Zonder jou database is het een beetje gokken hoe de tabellen en kolommen heten maar waarschijnlijk kun je deze wel ombouwen:

Code:
SELECT MijnTabel.TestType, MijnTabel.DatumInzet, CDATE(sum(MijnTabel.DatumInzet + 8)) as DatumAfronding
FROM MijnTabel
WHERE TestType = "A"
GROUP BY MijnTabel.TestType, MijnTabel.DatumInzet

UNION

SELECT MijnTabel.TestType, MijnTabel.DatumInzet, CDATE(sum(MijnTabel.DatumInzet + 15)) as DatumAfronding
FROM MijnTabel
WHERE TestType = "B"
GROUP BY MijnTabel.TestType, MijnTabel.DatumInzet

UNION

SELECT MijnTabel.TestType, MijnTabel.DatumInzet, CDATE(sum(MijnTabel.DatumInzet + 2)) as DatumAfronding
FROM MijnTabel
WHERE TestType = "C"
GROUP BY MijnTabel.TestType, MijnTabel.DatumInzet;

Het neemt 3 query's en plaatst deze samen met behulp van de Union operator.
 
We hebben een monster die voor verschillende testen ingezet word.
Er gaan weken voorbij dat ik mijn baas anders noem :)

Maar zonder gekheid. Ik snap de vraag niet eens, laat staan dat ik een antwoord kan bedenken. Rekenen met datums is simpel: [datumveld] + [testduur]. Of de functie DateAdd gebruiken, die hetzelfde oplevert. Allemaal heel simpel. De oplossing van noggeenguru snap ik nog minder; een SUM gebruiken op een datumveld in een GroupBy query? Heb je dat wel eens gedaan? Levert enorme getallen op: elke datum is al >45.000 dus drie datums optellen levert al een getal op dat je niet meer kan omzetten naar een datum. Bovendien krijg je dan datums die jij en ik niet meer gaan meemaken!

Maar hoe dan ook: ik zou tabellen maken waarin je de testprocedures vastlegt inclusief de duur, en die koppelen aan de testtabel. Maar doe jezelf (en ons) een plezier, en doe er een voorbeeldje bij!
 
Sorry ik was niet gelegenheid om er een voorbeeld bij te plakken. Hoopte dat het zo ook zou lukken. En het is gelukt. Bedankt NogGeenGuru union was de oplossing!
 
Fijn om te horen!

@Octafish
In mijn query is geen gebruik gemaakt van een kolom waarin de tijdsduur gedefinieerd staat.
als dit wel het geval is zou er inderdaad een datum uit komen die wij zeker niet mee gaan maken.
dit is in access op te lossen door de tabellen te joinen.

bijgaand voorbeeld zou hier helderheid over moeten scheppen.
bevat ook een view waarin de gebruiker een testtype en datum op kan geven.
 

Bijlagen

  • DatumMetSom.zip
    58,7 KB · Weergaven: 26
@noggeenguru: jij spreekt de taal van timpoe duidelijk wel en ik niet, want ik lees dat toch echt anders:
Nu zouden we graag willen dat een Query berekend op welke datum de testen klaar zijn als je inzet datum en type testt invult.
Inzet datum: de startdatum, lijkt mij. Is dus echt wel een datum. Type test: Dat is dus die A, B of C op basis waarvan de einddatum (toch echt de startdatum + duur) berekend moet worden. Dus op basis van deze aannames moet het ontzettend veel simpeler kunnen dan jouw oplossing.
 
@Octafish ik ben het met je eens hoor. Mijn eerst uitwerking was niet zo goed.

In het voorbeeld-bestandje heb ik ook een oplossing toegevoegd die werkt vanuit startdatum + duur. Ook deze query kan ongetwijfeld beter/simpeler, maar gelukkig heeft het Timpoe toch nog kunnen helpen :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan