Versio

[SQL]Totale maandelijkse inkomst per voorstelling

Overzicht Reageren

GaMer B

GaMer B

14/01/2008 19:47:00
Quote Anchor link
Hallo allemaal,

Een vriend van mij heeft een database structuur over voorstellingen. Hij moet nu een query voor elkaar krijgen die voor hem de totale maandelijkse inkomsten per voorstelling uitrekent.

Dit is de samenhang van alle tabellen:
http://i17.tinypic.com/7x9xrvd.jpg

De prijs verschilt ook nog eens per rang dus daar moet ook rekening mee worden gehouden en er moet dan, zoals hier boven al vermeldt, per voorstelling een maandelijkse inkomsten bedrag uit komen.

We zijn er beiden nog niet uitgekomen en hoopten dat er een paar knappe koppen hier wat meer verstand van zaken heeft.
 
PHP hulp

PHP hulp

25/05/2012 18:34:47
Gesponsorde koppelingen:
 
Martijn B

Martijn B

14/01/2008 19:57:00
Quote Anchor link
Zo iets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT
v.titel, SUM(p.prijs)
FROM
voorstelling v, prijzen p
WHERE
v.titel = p.voorstelling
GROUP BY
v.titel


En dan nog per maand.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Klaasjan Boven

Klaasjan Boven

14/01/2008 19:59:00
Quote Anchor link
Rang hoort niet in de tabel prijzen volgens mij
 
Joren de Wit
Beheerder

Joren de Wit

14/01/2008 19:59:00
Quote Anchor link
Allereerst klopt het datamodel niet helemaal. De kolom beginDatumtijd in de Bezetting tabel is overbodig. Deze is immers via de Uitvoering tabel te achterhalen.

Verder mis ik nog redelijk wat id's in het model. Er wordt nu regelmatig gebruik gemaakt van strings als foreign keys (rang vs rangnaam, zaal vs zaalnaam). Hoewel het niet per definitie fout is, is het zeker niet aan te raden. Je database wordt er namelijk onnodig veel trager door.

Verder neem ik aan dat er ook kaarten aan de deur verkocht kunnen worden. Hoe zitten die gegevens in dit model verwerkt? En hebben mensen met een reservering per definitie ook betaald?

Dat zijn vragen die je je eerst moet stellen voordat je pas een zinnig woord kunt zeggen over de inkomsten per voorstelling per maand.

ps.
@Martijn: dat is te eenvoudig. Zie mijn commentaar.
@Klaasjan: als de prijs per rang vastgelegd wordt toch wel?
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Michiel

Michiel

14/01/2008 20:01:00
Quote Anchor link
Blanche, aangezien dit een school opdracht is, is er weinig te vertellen over de structuur van de database. Dit valt niet uit te kiezen.
 
Martijn B

Martijn B

14/01/2008 20:02:00
Quote Anchor link
Weet ik die rangen moet je ook menemen.

Was meer bedoelt als een opzetje.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Frank -

Frank -

14/01/2008 20:02:00
Quote Anchor link
Offtopic maar niet geheel onbelangrijk: Ik heb mijn twijfels over het datamodel. De tabel 'bezetting' vind ik een hele rare, de bezetting lijkt mij een afgeleide van de reservering. De tabel 'prijzen' heeft nog als probleem dat je nooit een prijs kan/mag veranderen, dat heeft direct gevolgen voor de reserveringen in het verleden. Ook die staan dan ineens met een andere prijs in de boeken! Het lijkt me wel heel sterk dat dit een gewenste situatie is.

Tip: Hoe de boel nog eens heel goed tegen het licht of begin even met een schone lei. Dat wil nog wel eens nieuwe/betere inzichten opleveren.
 
Klaasjan Boven

Klaasjan Boven

14/01/2008 20:05:00
Quote Anchor link
@Blanche klopt, verkeerd gezien
 
Joren de Wit
Beheerder

Joren de Wit

14/01/2008 20:09:00
Quote Anchor link
Michiel schreef op 14.01.2008 20:01:
Blanche, aangezien dit een school opdracht is, is er weinig te vertellen over de structuur van de database. Dit valt niet uit te kiezen.
Je bedoelt dat het datamodel zo in de opdracht vastgelegd is? Wat een baggeropdracht dan...

Maar goed, dan moet je je alsnog die ene belangrijke vraag stellen: wanneer valt iets onder inkomsten, ofwel: wanneer is iets betaald?

Ik zou me er eigenlijk niet aan durven wagen om hier een query voor op te stellen, gewoonweg omdat het resultaat te allen tijde onbetrouwbaar is...
 
Frank -

Frank -

14/01/2008 20:10:00
Quote Anchor link
Michiel schreef op 14.01.2008 20:01:
Blanche, aangezien dit een school opdracht is, is er weinig te vertellen over de structuur van de database. Dit valt niet uit te kiezen.
Een slimme opmerking over een fout datamodel kan echter geen kwaad. Of leer jij soms ook dat 1 + 1 = 0.5 ? Ik mag toch hopen van niet.
 
Martijn B

Martijn B

14/01/2008 20:14:00
Quote Anchor link
@Frank:

Ik heb op het HBO ook een soort gelijke opdracht gehad met een heel fout datamodel. Dat leverde erg interessante query's op.

Het gaat er om hoe het nu juist niet moet, en daar leer je weer van ;P
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Joren de Wit
Beheerder

Joren de Wit

14/01/2008 20:16:00
Quote Anchor link
Martijn! schreef op 14.01.2008 20:14:
Het gaat er om hoe het nu juist niet moet, en daar leer je weer van ;P
En dan is het enige juiste antwoord op dit vraagstuk dus: 'Ik kan hier geen query voor opstellen, want het datamodel is incorrect!'
 
Martijn B

Martijn B

14/01/2008 20:22:00
Quote Anchor link
Onderbouw dat eens?

:P
 
Joren de Wit
Beheerder

Joren de Wit

14/01/2008 20:26:00
Quote Anchor link
Zie onder andere de reacties van mij en Frank, zou ik zo zeggen ;-)

ps. Bij deze toestemming gegeven om mijn reacties direct voor te leggen aan de betreffende docent. Kleine voorwaarde: ik wil dan wel het antwoord daarop weten :-)
 
Michiel

Michiel

14/01/2008 20:31:00
Quote Anchor link
Ik zal het antwoord doorgeven
 
Frank -

Frank -

14/01/2008 20:40:00
Quote Anchor link
Martijn! schreef op 14.01.2008 20:14:
@Frank:

Ik heb op het HBO ook een soort gelijke opdracht gehad met een heel fout datamodel. Dat leverde erg interessante query's op.

Het gaat er om hoe het nu juist niet moet, en daar leer je weer van ;P
Wanneer je niet kunt controleren of het antwoord correct is, is er niets interessants aan de query.

Een fout datamodel kan inhouden dat het wiskundig niet klopt. Daar kun je op gaan querieen wat je wilt, daar zullen nooit correcte antwoorden uit kunnen komen. De database uit dit topic is daar een voorbeeld van, je hebt geen flauw idee wat de prijzen waren de afgelopen dagen/weken/maanden, dan kun je dus ook onmogelijk de omzet bepalen.
 



Overzicht Reageren

Get Adobe Flash player