Probleem bij oefenopdrachten

Status
Niet open voor verdere reacties.

Lars00

Nieuwe gebruiker
Lid geworden
9 jun 2021
Berichten
4
Hallo allemaal,

Ik zit al dagen aan mijn oefenopdrachten en ik loop volledig vast. Ik heb er een korte handleiding bij gekregen, maar ik kom hier niet mee uit de voeten.

De oefenopdrachten zijn allemaal gebasseerd op een casus met data van de Zara, dus kort gezegd heb je informatie over medewerkers, orders, inkooporders etc.

Ik heb moeite met rekenen binnen access en de where en gemiddelde functies.

Een vraag luidt bijvoorbeeld: 'Zara verzendt inkooporders op de PurchaseOrderDate. Op basis van de orders van de winkels wordt de kleding besteld bij leveranciers. Na enkele maanden worden de goederen ontvangen in het magazijn. Dit is de ReceiveDate. Ga na hoe lang de levertijd gemiddeld is door het gemiddelde datumverschil te nemen.

Wat ik gedaan heb is een query openen van de PurchaseOrderDate en eentje van de ReceiveDate. Hierdoor zie ik al deze data. Ik loop vast bij het berekenen van het gemiddelde datumverschil.

Het zou ontzettend fijn zijn als iemand mij op weg kan helpen!

Alvast bedankt voor reactie.
 
Wat ik gedaan heb is een query openen van de PurchaseOrderDate en eentje van de ReceiveDate. Hierdoor zie ik al deze data. Ik loop vast bij het berekenen van het gemiddelde datumverschil.
Klinkt als een schoolopdracht, dus ik ga voorlopig geen uitwerking geven die je letterlijk kan overnemen. Maar ik mag je wel in de goede richting duwen. Bij deze dus :).

Om te beginnen: twee queries openen heeft niet zoveel zin. Alle informatie moet je in essentie in één query ondervangen. In die query moet je dus per order zowel de PurchaseOrderDate neerzetten als de ReceiveDate. Dat zou niet zo moeilijk moeten zijn, want alle noodzakelijke tabellen/queries zouden in ieder geval een veld OrderID moeten hebben. Dan heb je dus drie velden: OrderID, PurchaseOrderDate en ReceiveDate. Die twee datums kun je in een nieuw veld van elkaar aftrekken. Dat levert per order het verschil op tussen OrderDate en ReceiveDate. Ik zou dan, voor het gemak, een nieuwe query maken op basis van die query met de Totalen actief, waarbij je dan de functie GEM (AVG) gebruikt om de gemiddelde leverduur uit te rekenen. Dat levert dan één waarde op één veld op.
 
Ik denk dat het de bedoeling is dat je zelf een nieuwe query maakt. Je hebt een query nodig die:
- alleen de reeds geleverde orders, voor de nog niet geleverde weet je immers de levertijd nog niet.
- waarin je de berekening maakt, hiervoor moet je weten hoe de levertijd berekend moet worden. Ik neem aan in dagen. Dan is het simpel: DeliveryDate = Receivedate - PurchaseOrderdate
- het gemiddelde kan je weten door van de query een groepsquery te maken (de totals knop in je query design). Wil je bv. het gemiddelde per leverancier dan groepeer je op leverancier en gebruik je de avg functie bij het berekende veld. Dan heb je één resultaatlijn per leverancier.
Wil je gewoon het gemiddelde over alle records weten dan groepeer je nergens op en zet je alleen de avg functie op het berekende veld. Dan heb je één resultaatlijn.

succes
 
Thanks voor jullie reacties, helaas geen schoolopdracht, maar een ingangseis voor een cursus :(

Ik heb gekeken naar jullie uitleg maar kom er nog steeds niet echt uit. Waar doe je zo'n berekening met Deliverydate en gem? In welke kolom?

Ik heb er foto'sBekijk bijlage 357998 bijgevoegd zodat jullie een impressie hebben.Bekijk bijlage 357997

Thanks alvast!
 
Voorbeeld van zo een query:
 

Bijlagen

  • AverageExample.JPG
    AverageExample.JPG
    70 KB · Weergaven: 25
Je bijlagen zijn niet te bekijken; probeer ze nog eens, maar dan met toevoegen vanuit het scherm <Ga geavanceerd>. Dan doen ze het meestal wél.
 
Thanks voor je voorbeeld Noella. Wanneer ik dit probeer, krijg ik een pop-up waar die vraagt om een parameter. Hopelijk zijn mijn foto's nu wel te zien. Ik heb dus een query gemaakt met de tabel PurchaseOrder, waar ik PurchaseOrderDate en ReceiveData heb aangeklikt. Ik moet het gemiddelde verschil in deze data zien te berekenen met een functie, zodat ik de gemiddelde verzendtijd heb.
 

Bijlagen

  • IMG_8647.jpg
    IMG_8647.jpg
    1,8 MB · Weergaven: 29
  • IMG_8649.jpg
    IMG_8649.jpg
    2,1 MB · Weergaven: 22
Ik kom dichterbij volgens mij, ik heb nu door een kolom te pakken met Expr1: [ReceiceDate] - [PurchaseOrderDate] een kolom met de verzending per order. Heb als total functie AVG gedaan.

Alleen hoe kom ik vanaf hier naar het gemiddelde van alle orders samen?
 

Bijlagen

  • IMG_8652.jpg
    IMG_8652.jpg
    2 MB · Weergaven: 22
Maak je foto's van jouw scherm ofzo? Het ligt allemaal nogal overdwars..

Een beetje basiskennis van Windows zal vast ook wel in de eisen zitten:confused:
 
Laatst bewerkt:
Eerst moet het resultaat van je query correct zijn. Als ik mijn hoofd 90 graden draai zie ik op je query scherm geen enkele link tussen de tabellen PurchaseOrders and orders. Dan krijg je een cartesisch product waarbij elke lijn van tabel A met elke lijn van tabel B wordt gematched, dus als je 2 tabellen hebt met elk 100 lijnen krijg je een resultaat met 10.000 lijnen wat niet echt de bedoeling zal zijn denk ik. Dus eerst de juiste relaties leggen. Of alleen de tavel Purchaseorders gebruiken en de Orders tabel uit de query verwijderen. Ik zie immers in je tabel PurchaseOrders de twee velden PurchaseOrderDate en receivedate.

Probeer de volgend query syntax in je SQL view:

Code:
SELECT Avg([receivedate]-[purchaseorderdate]) AS fldDeliveryDays
FROM PurchaseOrders
WHERE receivedate Is Not Null;

Verbeter eventuele typfouten (SQL is uit de vrije hand hier neergeschreven).

succes
 
Als ik de twee tabellen bekijk, dan zie ik geen één-op-één relatie tussen de twee liggen. Hooguit de twee sleutelvelden die je aan elkaar kan koppelen. Da’s een wonderlijke constructie, want dan zou je een één-op-één relatie hebben. Kun je alle velden net zo goed in één tabel zetten.
Nu heb je een Cartesisch Product gemaakt, waarbij je alle records met elkaar combineert. Kan wel eens handig zijn, maar hier niet zo denk ik. Ik raad je aan eerst eens naar je brongegevens te kijken en de tabellen correct te koppelen.

Nog veel beter: post de db erbij, want aan plaatjes (zeker van zo’n slechte kwaliteit, al is kantelen op een iPad niet heel moeilijk :)) hebben we niks. Met de db erbij was je vraag al om 14:00 opgelost :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan