[MySQL] Maand vervangt weken

Pagina: 1
Acties:

Vraag


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 18-04 08:59
Hoi,

Ik kom niet tot een oplossing voor het volgende. En ik hoop dat iemand hiermee kan helpen. Ik heb twee tabellen, 'months' en 'weeks'. Elke week wordt er een bedrag in de weeks tabel gezet, met daarbij de datum van die week. Dit is de behaalde omzet per week. In de 'months' tabel wordt, niet perse aan het einde vd maand maar een tijdje het effectief behaalde omzet geplaatst met dan een datum van die maand.

Nu wil ik alle weken ophalen, en de bedragen opsommen, maar als er voor een maand een 'months' regel bestaat, moeten alle weken daarin komen te vervallen. Ik kan het beste even schetsen:

maand1, maand2, maand3, maand4, week17, week18, week19, week20, week21, week22

Wordt die maand5 ingevuld, dan moet hij dus de laatste weken binnen die maand uit de query laten en de maand summen.

maand1, maand2, maand3, maand4, maand5, week22

(maand en week nummers zijn een voorbeeld, niet de werkelijkheid).

Dus zolang er geen maand is voor die weken, moeten de weken plus de voorlopende maanden. Dit is een voorbeeld zonder between oid om het simpel te houden.

Omdat die twee tabellen niets gemeen met elkaar hebben loop ik vast, ik kom tot een CROSS JOIN met een CASE maar dan weet ik niet waarop ik moet toesten. Als ik op een week kom, en kom tot de conclusie dat het een maand moet zijn gaat hij toch alle drie/vrier de weken af en krijg je 4x die maand ge SUM's.

Al start ik met de maanden, dan weet ik niet hoe ik de missende maanden kan vullen met de betreffende weken.

De data is zoals het is, daar kan ik niets aan doen. Dus ik zoek een oplossing voor mijn uitdaging. Elke hulp is erg welkom! _/-\o_

Alvast dank, Bas.

months
id (int)value (dec8,2)report_date (date)


weeks
id (int)value (dec8,2)report_date (date)



...

[ Voor 3% gewijzigd door BasXcore op 13-08-2020 17:04 . Reden: tabellen niet goed ]

Alle reacties


  • mjax
  • Registratie: September 2000
  • Laatst online: 22-07 06:03
Als je weken weg gaat laten waarvoor een maand bestaat, krijg je uiteraard ook missende omzet omdat een maand bijvoorbeeld halverwege de week eindigt. Wat dan?

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Geen maanden en weken proberen op te tellen.
Gewoon wk1 t/m 22 pakken.
Enige waar je zou kunnen mergen is waar de 1e dag van de week op dag1 van een maand valt.

Dit soort data op week basis is natuurlijk een recept voor problemen, welke weken tel je mee als je vanaf 1 januari wil tellen etc.
Begint je week op maandag of zondag.
Welke datum sla je op bij de weekdata, eerste of laatste dag van die week.

Death smiles at us all, all a man can do is smile back.
PSN


Acties:
  • +7 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 15:48

Belindo

▶ ─🔘─────── 15:02

Gewoon een tabel gebruiken en waardes op datum (dag) wegschrijven. Dan haal je met enkele klikken een jaarlijks, kwartaallijks (is dat een woord?), maandelijks, wekelijks en dagelijks rapport op.

Tevens ook handig als je een keer wilt kijken op welke dag van de week er gemiddeld meer omzet is.

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
De vraag is dan wel of er data op dagniveau bestaat. Wat TS wil kan vast trouwens met 2 selects met voor de weken een not exists ofzo, en een UNION daartussen. Maar ik snap alsnog niet waarom het nuttig is om weken en maanden in eenzelfde overzicht te hebben, omdat ze vaak overlap hebben. Weken zijn wat mij betreft altijd vervelende rapportageperiodes omdat ze niet in jaren/kwartalen/maanden/dagen passen. Ook starten ze ieder jaar anders en wisselen de feestdagen. Ik zie liever data op dagniveau.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Djordjo
  • Registratie: Mei 2007
  • Niet online
Ik mis nog wat informatie:
  • Wat is het doél van je exercitie? Wil je de meest recente omzetcijfers van het lopende jaar berekenen? Vanaf 1 januari van het jaar?
  • Wat is de relatie tussen een maand en een week? Wordt bij een 'gebroken' week een evenredig deel van een week meegeteld o.i.d.? (Dus bv maand1=5/7week1+week2,3,4+5/7week5?)

Acties:
  • +1 Henk 'm!

  • Wim-Bart
  • Registratie: Mei 2004
  • Laatst online: 10-01-2021

Wim-Bart

Zie signature voor een baan.

Belindo schreef op donderdag 13 augustus 2020 @ 18:25:
Gewoon een tabel gebruiken en waardes op datum (dag) wegschrijven. Dan haal je met enkele klikken een jaarlijks, kwartaallijks (is dat een woord?), maandelijks, wekelijks en dagelijks rapport op.

Tevens ook handig als je een keer wilt kijken op welke dag van de week er gemiddeld meer omzet is.
Volgens mij is dit gewoon de enige goede oplossing en wanneer er omzet per week, per maand, per kwartaal gedaan moeten worden dan kan dat met een view.

Basis tabel: omzet
id (int)
omzet value (dec8,2)
report_date (date)

en dan een paar views:
omzet_per_uur
omzet_per_dag
omzet_per_week
omzet_per_maand
omzet_per_kwartaal
omzet_per_halfjaar
omzet_per_jaar

Beheerders, Consultants, Servicedesk medewerkers. We zoeken het allemaal. Stuur mij een PM voor meer info of kijk hier De mooiste ICT'er van Nederland.


Acties:
  • 0 Henk 'm!

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 18-04 08:59
Ik ben ook tot de conclusie gekomen dat weken ontzettend lastig met maanden te combineren zijn. Inderdaad omdat een week in twee maanden kan zitten.

Dan moeten het twee aparte rapportages worden, waarin los de maanden en weken worden opgeteld.

Bedankt voor de reacties, heeft erg geholpen.
Pagina: 1