Hallo zusammen,
ich habe mal wieder eine Idee im Kopf, kann sie aber leider nicht richtig umsetzen. Ich habe eine Tabelle mit Flächengrößen, die ich zusammenfassen möchte.
Ausgangstabelle:
Zeile | Grundstueck | Flurst. | Kategorie | Art | Fläche1 | Fläche2 | Fläche3
1 | 111111-222222-3333 | f1 | A |Wald | 100 | 101 | 101
2 | 111111-222222-3333 | f2 | A |Wald | 2000 | 2010 | 2010
3 | 111111-222222-3333 | f2 | B |Gew | 1100 | 1090 | 1090
4 | 111111-222222-4444 | f3 | A |Wald | 5000 | 5050 | 5050
5 | 111111-333333-1111 | f4 | B | Woh | 2000 | 2010 | 2010
6 | 111111-444444-1111 | f5 | A | Wald | 9000 | 8900 | 8900
Zieldaten nach Abfrage
Zeile | Grundbuch | Anzahl der Teilflächen | Sum Fl-A1 | Sum Fl-A2 | Sum Fl-B1 | Sum Fl-B1
1 | 111111-222222 | 4 | 8200 | 8251 | 1100 | 1090
2 | 111111-333333 | 1 | 2000 | 2010 | 2000 | 2010
2 | 111111-444444 | 1 | 9000 | 8900 | 0 | 0
Mein bisheriger Versuch bringt leider noch keinen Erfolg. Er berechnet die Wert mal X (wahrscheinlich mal Anzahl Teilflächen)
SELECT
SUBSTRING(t.grundstueck,1,13) as bvnr,
COUNT(t.grundstueck) as anzahl_teilflaechen_in_bvnr,
SUM(katA.flaeche_gb) as flaeche_gb_kat_a,
ROUND(SUM(katA.flaeche_uhv)) as flaeche_uhv_kat_a,
SUM(katB.flaeche_gb) as flaeche_gb_kat_b,
ROUND(SUM(katB.flaeche_uhv)) as flaeche_uhv_kat_b
FROM gvis.gvis_teilflaeche t
JOIN
(
SELECT
ta.grundstueck,
ta.alkis_id,
ta.flaeche_gb,
ta.flaeche_uhv
FROM gvis.gvis_teilflaeche ta
) AS katA ON SUBSTRING(katA.grundstueck,1,13) = SUBSTRING(t.grundstueck,1,13) AND katA.alkis_id = t.alkis_id
JOIN
(
SELECT
tb.grundstueck,
tb.alkis_id,
tb.flaeche_gb,
tb.flaeche_uhv,
tb.kategorie
FROM gvis.gvis_teilflaeche tb
) AS katB ON SUBSTRING(katB.grundstueck,1,13) = SUBSTRING(t.grundstueck,1,13) AND katB.alkis_id = t.alkis_id AND katB.kategorie = 'B'
WHERE t.alkis_id = 2022
GROUP BY SUBSTRING(t.grundstueck,1,13)
ORDER BY bvnr
Kann mir da jemand einen Tipp geben?
LG