Hallo....
ich komme in meiner Abfrage nicht weiter und vielleicht sehe ich auch den Wald vor lauter Bäumen nicht... ;-)
Folgende Tabelle: (Auszug)
[highlight=sql]
SELECT Z.VERTRAGNR, Z.RECHNUNGDAT, Z.GEBUEHR
FROM VTRGFAKT Z
WHERE Z.VERTRAGNR = 7 OR Z.VERTRAGNR = 236
ORDER BY Z.VERTRAGNR, Z.RECHNUNGDAT DESC
[/highlight]
VERTRAGNR RECHNUNGDAT GEBUEHR
7 2020-05-06 00:00:00.000 167
7 2019-06-07 00:00:00.000 160
7 2018-02-21 00:00:00.000 160
7 2018-02-21 00:00:00.000 160
7 2017-02-21 00:00:00.000 152,25
7 2017-02-21 00:00:00.000 152,25
7 2016-05-27 00:00:00.000 152,25
7 2016-05-24 00:00:00.000 152,25
7 2015-02-16 00:00:00.000 145
7 2014-03-06 00:00:00.000 145
236 2021-10-14 00:00:00.000 488
236 2020-08-21 00:00:00.000 593
236 2019-08-15 00:00:00.000 469
236 2018-06-13 00:00:00.000 469
236 2017-07-13 00:00:00.000 446,25
236 2016-08-02 00:00:00.000 446,25
236 2015-07-08 00:00:00.000 425
236 2014-06-04 00:00:00.000 425
Wenn ich jetzt das GROUP BY beginne dann erhalte ich folgendes:
[highlight=sql]
SELECT Z.VERTRAGNR, MAX(Z.RECHNUNGDAT) AS RECHNUNGDAT, MAX(Z.GEBUEHR) AS GEBUEHR
FROM VTRGFAKT Z
WHERE Z.VERTRAGNR = 7 OR Z.VERTRAGNR = 236
GROUP BY Z.VERTRAGNR
[/highlight]
VERTRAGNR RECHNUNGDAT GEBUEHR
7 06.05.2020 00:00:00 167
236 14.10.2021 00:00:00 593
Die Abfrage ist Prinzipiell richtig. Weil ich ja MAX(Z.GEBUEHR) angebe.
Die Gebühren können aber auch Rückläufig sein!
Um das GROUP BY nutzen zu können muss ich ja MIN MAX etc. verwenden.
Was muss ich also machen, dass er mir zum höchsten RECHNUNGDAT die richtige GEBUEHR ausgibt.
Ziel:
VERTRAGNR RECHNUNGDAT GEBUEHR
7 2020-05-06 00:00:00.000 167
236 2021-10-14 00:00:00.000 488
MfG flumi112
ich komme in meiner Abfrage nicht weiter und vielleicht sehe ich auch den Wald vor lauter Bäumen nicht... ;-)
Folgende Tabelle: (Auszug)
[highlight=sql]
SELECT Z.VERTRAGNR, Z.RECHNUNGDAT, Z.GEBUEHR
FROM VTRGFAKT Z
WHERE Z.VERTRAGNR = 7 OR Z.VERTRAGNR = 236
ORDER BY Z.VERTRAGNR, Z.RECHNUNGDAT DESC
[/highlight]
VERTRAGNR RECHNUNGDAT GEBUEHR
7 2020-05-06 00:00:00.000 167
7 2019-06-07 00:00:00.000 160
7 2018-02-21 00:00:00.000 160
7 2018-02-21 00:00:00.000 160
7 2017-02-21 00:00:00.000 152,25
7 2017-02-21 00:00:00.000 152,25
7 2016-05-27 00:00:00.000 152,25
7 2016-05-24 00:00:00.000 152,25
7 2015-02-16 00:00:00.000 145
7 2014-03-06 00:00:00.000 145
236 2021-10-14 00:00:00.000 488
236 2020-08-21 00:00:00.000 593
236 2019-08-15 00:00:00.000 469
236 2018-06-13 00:00:00.000 469
236 2017-07-13 00:00:00.000 446,25
236 2016-08-02 00:00:00.000 446,25
236 2015-07-08 00:00:00.000 425
236 2014-06-04 00:00:00.000 425
Wenn ich jetzt das GROUP BY beginne dann erhalte ich folgendes:
[highlight=sql]
SELECT Z.VERTRAGNR, MAX(Z.RECHNUNGDAT) AS RECHNUNGDAT, MAX(Z.GEBUEHR) AS GEBUEHR
FROM VTRGFAKT Z
WHERE Z.VERTRAGNR = 7 OR Z.VERTRAGNR = 236
GROUP BY Z.VERTRAGNR
[/highlight]
VERTRAGNR RECHNUNGDAT GEBUEHR
7 06.05.2020 00:00:00 167
236 14.10.2021 00:00:00 593
Die Abfrage ist Prinzipiell richtig. Weil ich ja MAX(Z.GEBUEHR) angebe.
Die Gebühren können aber auch Rückläufig sein!
Um das GROUP BY nutzen zu können muss ich ja MIN MAX etc. verwenden.
Was muss ich also machen, dass er mir zum höchsten RECHNUNGDAT die richtige GEBUEHR ausgibt.
Ziel:
VERTRAGNR RECHNUNGDAT GEBUEHR
7 2020-05-06 00:00:00.000 167
236 2021-10-14 00:00:00.000 488
MfG flumi112
Comment