de tabel is niet genormaliseerd. Helaas is het een oud (en slecht) ontwerp waar een ERP pakket gegevens uit haalt, en een dertig tal machines gegevens naar toe schrijven. Normalisatie is helaas niet mogelijk.
ik heb een foutje gemaakt in de gegevens, en zal het herstellen. Ik gebruik bijvoorbeeld de onderstaande query, maar die geeft natuurlijk alleen regels weer waar machine1 een waarde heeft.
De query die ik gebruik zit in de volgende hoek. Natuurlijk pakt hij alleen regels waar machine1 al wat in heeft weggeschreven. Als in de regel toevallig ook machine2 wat gedaan heeft, wordt deze opgeteld.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| SELECT
extract (Year from machine1) || '-' ||
lpad(cast(extract(Month from machine1) as varchar),2,'0') || '-' ||
lpad(cast(extract(day from machine1) as varchar),2,'0') AS dt,
Count(tbldeuren.machine1) AS AantalVanmachine1,
Count(tbldeuren.machine2) AS machine2
FROM tbldeuren
WHERE tbldeuren.run<'Z'
and eindcontroleexpeditie is not null
GROUP BY extract (Year from machine1) || '-' ||
lpad(cast(extract(Month from machine1) as varchar),2,'0') || '-' ||
lpad(cast(extract(day from machine1) as varchar),2,'0')
order by extract (Year from machine1) || '-' ||
lpad(cast(extract(Month from machine1) as varchar),2,'0') || '-' ||
lpad(cast(extract(day from machine1) as varchar),2,'0') desc
limit 10; |
ik heb het gevoel dat ik deze drama-tabel eerst moet transponeren zodat er een view onstaat die genormaliseerd is. Daar kan ik dan op query-en.
[
Voor 5% gewijzigd door
107mb op 13-01-2020 14:49
]