Opgelost Tabel met data range omzetten naar (nieuwe) tabel per datum

Dit topic is als opgelost gemarkeerd

Irenemartine

Gebruiker
Lid geworden
13 dec 2023
Berichten
18
Ik heb een tabel waarin ik overnachtingen met de camper bijhoud. In deze tabel zit een datum range, dus DatumVan tot DatumTot.
Deze tabel zou ik graag omzetten naar een nieuwe tabel waarbij voor elke datum een aparte regel wordt gemaakt.
Als in mijn huidige tabel dus 1 regel is met DatumVan = 3 februari en DatumTot = 7 februari dan moeten in de nieuwe tabel 4 nieuwe regels worden gemaakt, met datums 3 februari t/m 6 februari (7 februari hoort weer bij de volgende overnachtingsplaats).
De rest van de informatie uit het record moet hetzelfde blijven.

Ter verduidelijking in de bijlages screenshots van de tabel met data range en de tabel met aparte data zoals die er uit moet komen te zien.

Geen idee hoe ik dit aan moet pakken...Tabel aparte data.pngTabel data range.png
 

Bijlagen

  • Data range.xlsx
    8,6 KB · Weergaven: 4
Excel vraag? En waarom zou je dat willen? Die informatie kan je toch middels een query opvragen?
 
Sorry heb ik het niet goed gevraagd? Ik wil dit graag in Access oplossen, niet in Excel...
Maar als het in een query makkelijk op te vragen is, dan zou ik graag weten hoe.
Het maakt mij niet uit op welke manier de tabel gemaakt wordt, als ik hem maar kan gebruiken :)
 
Ik zie een Excel bestand, vandaar mijn vraag :). E.e.a. heeft (uiteraard) ook te maken met het doel dat je er mee wilt bereiken. Dus leg eens uit wat je bedoeling is.
 
Hihi dat Excel bestand was alleen voor het geval iemand mijn data zou willen gebruiken om te proberen.
Maar goed.
Ik heb een vrij simpele db, met een tabel met overnachtingsplaatsen. Elke plaats is uniek, maar kan uiteraard meerdere keren bezocht worden, en soms ook meerdere nachten achter elkaar.
Ik heb ook een tabel met informatie over de overnachtingen, dus datum en prijs. Beide tabellen zijn gekoppeld dmv Camperplaats_ID.
Tijdens de camperreis worden de bezochte plaatsen bijgehouden in, jawel, Excel. Aan het eind van de reis zijn er dus verschillende regels die naar Access ‘moeten’. Ik voeg eerst de overnachtingsplaatsen aan de overnachtingsplaatsen-tabel (indien nog niet aanwezig daar), en daarna wil ik de bezoekdata toevoegen. Met de range zoals deze nu uit Excel komt lukt dit niet.
Ik hoop dat je het een beetje snapt.

Enne… het is voor mij een beetje hobby-en om dit in Access bij te houden, dus het kan waarschijnlijk makkelijker/beter/handiger 😜
 
Ik heb (verzin je niet) ooit een voorbeeldje gemaakt over het registreren van overnachtingen op een camping die ongeveer doet wat jij wenst :). Misschien niet helemaal, maar ik zal even uitleggen wat-ie dan precies doet.

In deze database leg je huurperiodes vast op basis van een persoon (logisch), een plek (in mijn db een vakantiehuisje) en een periode. Op basis van een prijzentabel en het type huisje wordt dan een prijs berekend. Die prijs is afhankelijk van de tijd van het jaar, want in verschillende periodes betaal je andere prijzen. Hoogseizoen vs laagseizoen, om maar wat te noemen. Het systeem rekent op basis van begin- en einddatum uit over welke periode welk tarief moet worden betaald. Dus als iemand een huisje huurt dat volledig in het hoogseizoen valt, komt er één record uit, maar valt de huurperiode over twee tariefperiodes, dan krijg je twee records. En bij een overlapping op basis van 3 periodes uiteraard 3 prijzen.

Kortom: op basis van een tabel met prijzen met een begin- en einddatum kun je een huurperiode met een begindatum en een einddatum keurig verdelen over die prijzen.

Volgens mij is dat ongeveer wat je zou willen zien, dan wel nodig hebt. Overigens zie ik nog steeds de noodzaak niet van het hebben van een tabel waarin je identieke records aanmaakt (of toont in een query) waarin je voor elke dag op één plek dezelfde informatie ziet. Wat ga/wil je daar mee doen?
 
Mijn vraag is denk ik veel simpeler dan jouw overnachtingen: er hoeft niet gekeken te worden naar prijzen en dergelijke, gewoon voor elke overnachtingsdatum een andere regel.
Ik weet niet meer precies waarom ik hiervoor gekozen heb, ik denk omdat ik gemiddelde prijzen (per jaar of maand of land) wilde bepalen en dacht dat dat alleen op deze manier goed zou gaan.
 
Mijn vraag is denk ik veel simpeler dan jouw overnachtingen: er hoeft niet gekeken te worden naar prijzen en dergelijke, gewoon voor elke overnachtingsdatum een andere regel.
Maar de vraag is natuurlijk: WAAROM????
Het is nergens voor nodig om dat per dag uit te splitsen. Dus: wat wil je doen met die informatie?
 
Maar als je een gemiddelde wilt berekenen moet je delen door het aantal nachten.
Hoe weet Access dat ik ergens twee of drie nachten heb overnacht? Je kunt dat berekenen ja (eind-begin...) maar ik zou moeten testen hoe Access dan het gemiddelde berekent (niet als ik ergens vier dagen heb gestaan die waarde maar 1x meenemen omdat er maar 1 regel is). Nu gaat het in ieder geval goed. :)

Ik kan een kopie maken van mijn DB en de tabel Bezoek aanpassen, en kijken of en hoe het werkt met de gemiddelde bedragen. Maar dat is wel veel werk :(

Blijkbaar is het niet zo simpel ;)
 
Maar als je een gemiddelde wilt berekenen moet je delen door het aantal nachten.
Hoe weet Access dat ik ergens twee of drie nachten heb overnacht? Je kunt dat berekenen ja (eind-begin...)
Je geeft zélf al het antwoord :). Sterker nog: de door jou benoemde methode is veel beter dan wat je wilt bereiken met het los opslaan van elke overnachting. Je bent veel te veel bezig met denken in Excel methodiek. En het is dus wél zo simpel :).
 
Ik ga toch maar eens mijn bezoektabel omzetten.
Ik heb moeite met het visualiseren hoe die berekening van het gemiddelde en de som etc. gaat werken.
Ik kom er op terug :)
 
Laat eens in je Excel zien wat je als eindresultaat verwacht. Want ik snap je probleem echt niet: als je in één record een begin- en einddatum hebt, dan weet je toch hoeveel nachten dat zijn geweest? Waar wil je dan een gemiddelde van berekenen?
 
Het gaat om de gemiddelden/sommen van de betaalde bedragen voor de overnachting. En dan ook het aantal overnachtingen erbij.
Zie bijlage voor de data die ik er nu uit haal.
 

Bijlagen

  • Gemiddelden en Totalen.png
    Gemiddelden en Totalen.png
    88,7 KB · Weergaven: 5
Ik zie nu waarden en gegevens die ik niet in je Excelletje terug vind. Hoe kunnen wij een vraag correct beantwoorden als we niet de juiste gegevens hebben? Uiteraard kun je dit soort overzichten prima in Access maken, en ook nog eens op de door mij aangegeven manier, met de juiste manier van opslaan dus. Ik zie graag een tabelletje (of twee) tegemoet met de juiste brongegevens :).
 
De vraag was in eerste instantie of een tabel met datum ranges kan worden omgezet naar een tabel met voor elke datum een aparte regel.
Maar ik vind het uiteraard fijn dat je meedenkt of het beter/anders kan.

Ik voeg een (ietwat opgeschoonde) versie van mijn DB toe.
tbl_Camperlocatie bevat de camperlocaties
tbl_Bezoek bevat de data waarop de camperlocaties bezocht zijn.
Wat ik onder andere uit de data zou willen halen is:
  • Hoeveel heb ik gemiddeld/totaal betaald? En dat kan zijn per jaar, of per land (Query Gemiddelden en Totalen). En dan misschien ook uitgesplitst per type overnachtingsplaats
  • Hoe vaak (hoeveel nachten) heb ik overnacht op een bepaalde plaats?
  • Het zou helemaal mooi zijn als er ook het aantal bezoeken aangegeven kan worden. Dus bijvoorbeeld totaal 10 nachten op camperplaats 1, en dit waren 3 bezoeken. Maar dit is een wish geen must ;)
 

Bijlagen

  • Camperplaatsen.zip
    151 KB · Weergaven: 2
Ik heb de constructie van je database nog niet helemaal door (wat is de tabel [tbl_PolarStepsReizen])? Ik vermoed dat je alle trips daarin koppelt? Of heb je ook losse trips die je alleen in tblBezoek opslaat? Want dat verandert de werking van de db wel een beetje. Ik kan me goed voorstellen dat je, als je een dagje weggaat, geen 'vakantie' aan zou willen maken.

Daarnaast mis ik in de tabel [tbl_PolarStepsReizen] een einddatum. Dan weer wél een veld [Aantal dagen], dus op basis daarvan kan je de einddatum wel uitrekenen. Maar het lijkt mij handiger om met datums te werken. Bovendien maak je in de query een rekenfout, door niet met het juiste aantal dagen te werken, maar er één vanaf te trekken. Zo wordt een vakantie van 14 dagen bij jou er een van 13.
 
Hallo, ik heb een oud voorbeeld opgediept en daarin wordt ongeveer hetzelfde gedaan: je hebt een aantal locaties met prijzen per periode. Daar wordt in een query de reservaties uitgesplitst naargelang het aantal dagen per prijsperiode. Misschien heb je daar wat aan.
Ik heb de gegevens wat aangepast zodat ze iets meer actueel werden.
 

Bijlagen

  • Camping.zip
    41,1 KB · Weergaven: 2
Zo wordt een vakantie van 14 dagen bij jou er een van 13.
Dat zal wel te maken hebben met het verschil tussen vakantiedagen en overnachtingen. Bij 14-daagse vakantie heb je 13 overnachtingen. "Bezoeken" zijn kennelijk "overnachtingen".

@Irenemartine Wat betekent de kolom "Betaald" eigenlijk? Ik zie bij bezoeken met dezelfde reisID niet voor elke dag hetzelfde bedrag.
 
Wat betreft je drie punten: Punt 1 zijn sowieso al 3 verschillende queries; je vraagt verschillende soorten informatie op verschillende velden, dus dat kan nooit in 1 query. De query die je hebt gemaakt ([Gemiddelden en Totalen]) zit wat dat betreft prima in elkaar, je hebt al helemaal door hoe een Totalen query werkt :).
Dat geldt ook voor punt 2, die query is ook simpel te maken.
Code:
SELECT Plaatsnaam, Naam, Count(tbl_Bezoek.Bezoek_Id) AS Aantal
FROM tbl_Camperlocatie INNER JOIN tbl_Bezoek ON tbl_Camperlocatie.Camperlocatie_ID = tbl_Bezoek.Camperlocatie_ID
GROUP BY Plaatsnaam, Naam;

Wil je weten bij welke trips die bezoeken zijn geweest, dan zet je de tabel PolarStepsReizen erbij.
Code:
SELECT tbl_Camperlocatie.Plaatsnaam, tbl_PolarStepsReizen.Omschrijving, tbl_Camperlocatie.Naam,
Count(tbl_Bezoek.Bezoek_Id) AS Aantal
FROM tbl_PolarStepsReizen INNER JOIN (tbl_Camperlocatie INNER JOIN tbl_Bezoek
ON tbl_Camperlocatie.Camperlocatie_ID = tbl_Bezoek.Camperlocatie_ID)
ON tbl_PolarStepsReizen.PolarStepsReis_Id = tbl_Bezoek.PolarStepReisID
GROUP BY tbl_Camperlocatie.Plaatsnaam, tbl_PolarStepsReizen.Omschrijving, tbl_Camperlocatie.Naam;

Dan krijg je uiteraard meer records, zo wordt de locatie "Annweiler am Trifels" (in de eerste query 20 bezoekjes) dan opgesplitst in 6 records, met uiteraard nog steeds 20 bezoekjes in totaal.
 
Ik lees mee, want heb het idee dat mijn probleem heel erg vergelijkbaar is. https://www.helpmij.nl/forum/thread...-uit-bestand-met-ingangs-en-einddatum.970902/ @OctaFish jouw antwoord van 11.15 uur, is dat in essentie niet eigenlijk ook de sleutel naar mijn antwoord? Zo ja, dan ben ik wel benieuwd naar het hoe daarvan...
Ik zit alleen met de vraag hoe ik in plaats van losse dagen, losse jaren kan tellen. Maar mijn syntax doet dan volgens mij juist weer wel wat @Irenemartine wil, ware het niet dat ik het in powerBI doe en ik weet niet of dezelfde formule in Access kan worden gebruikt?
 
Terug
Bovenaan Onderaan