Ik moet een dagelijkse rapportage maken van data uit een enkele tabel.
Ik hoop dat ik zo een beetje duidelijk weergeef hoe het rapport moet worden:
En zo verder tot X25
Filter 1 = Aantal keer dat een string (X1, X2, X3, ...) voorkomt in kolom x
Filter 2 = De string mag niet voorkomen in kolom y
Filter 3 = De string moet juist wel voorkomen in kolom y
Filter 4 = De waarde van kolom z mag niet hoger zijn dan n
Result 4 = Result 1 minus Result 3
Result 5 = Result 2 gedeeld door Result 4
Alle resultaten zijn het aantal keren dat de gezamelijke filters de boolean TRUE geven.
Result 3 is dan bijvoorbeeld:
Tot nu toe ben ik bezig om 25 x een view te maken voor Filter 1, welke ik dan kan (her)gebruiken voor Result 1 t/m 3, maar dan nog zit ik met een shitload aan redundante code.
Aangezien ik voor 25 namen 3 query's heb (Result 4 en 5 kan ik later in de programmacode berekenen zonder query), vraag ik me af of ik dit niet op een slimmere manier kan doen.
Kortom: Hoe haal ik op de beste manier mijn samenvatting uit de database?
Ik hoop dat ik zo een beetje duidelijk weergeef hoe het rapport moet worden:
Naam | Result 1 | Result 2 | Result 3 | Result 4 | Result 5 |
---|---|---|---|---|---|
X1 | Filter 1 | Filter 1 + 2 | Filter 1 + 3 + 4 | Result 1 - Result 3 | Result 2 / Result 4 |
X2 | Filter 1 | Filter 1 + 2 | Filter 1 + 3 + 4 | Result 1 - Result 3 | Result 2 / Result 4 |
X3 | Filter 1 | Filter 1 + 2 | Filter 1 + 3 + 4 | Result 1 - Result 3 | Result 2 / Result 4 |
X4 | Filter 1 | Filter 1 + 2 | Filter 1 + 3 + 4 | Result 1 - Result 3 | Result 2 / Result 4 |
X5 | Filter 1 | Filter 1 + 2 | Filter 1 + 3 + 4 | Result 1 - Result 3 | Result 2 / Result 4 |
En zo verder tot X25
Filter 1 = Aantal keer dat een string (X1, X2, X3, ...) voorkomt in kolom x
Filter 2 = De string mag niet voorkomen in kolom y
Filter 3 = De string moet juist wel voorkomen in kolom y
Filter 4 = De waarde van kolom z mag niet hoger zijn dan n
Result 4 = Result 1 minus Result 3
Result 5 = Result 2 gedeeld door Result 4
Alle resultaten zijn het aantal keren dat de gezamelijke filters de boolean TRUE geven.
Result 3 is dan bijvoorbeeld:
SQL:
1
| SELECT COUNT(*) FROM 'mijntabel' WHERE (kolomX ='X1') AND (kolomY='X1') AND (kolomZ < 10) |
Tot nu toe ben ik bezig om 25 x een view te maken voor Filter 1, welke ik dan kan (her)gebruiken voor Result 1 t/m 3, maar dan nog zit ik met een shitload aan redundante code.
Aangezien ik voor 25 namen 3 query's heb (Result 4 en 5 kan ik later in de programmacode berekenen zonder query), vraag ik me af of ik dit niet op een slimmere manier kan doen.
Kortom: Hoe haal ik op de beste manier mijn samenvatting uit de database?
If you can judge a wise man by the color of his skin then mister you're a better man than I