Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL -> GROUP BY erweitern mit Ergebnis von SUM abfragen (https://www.delphipraxis.net/91888-sql-group-erweitern-mit-ergebnis-von-sum-abfragen.html)

HolgerCW 11. Mai 2007 12:10

Datenbank: ORACLE • Version: 9 • Zugriff über: BDE

SQL -> GROUP BY erweitern mit Ergebnis von SUM abfragen
 
Hallo zusammen,

folgende Abfrage habe ich gebastelt:

Delphi-Quellcode:

SELECT SERIALNUMMER, SUM(PLUSMINUS) AS SUMME
FROM SYSSIGMA.ZST_GERAETEBESTAND
WHERE SUMME > 0
GROUP BY SERIALNUMMER
ORDER BY SERIALNUMMER
Wiese kommt der Fehler ungültiger Spaltenname wenn ich die SUMME abfrage? Wie kann ich SUMME sonst abfragen ?

Gruss

Holger

mkinzler 11. Mai 2007 12:15

Re: SQL -> GROUP BY erweitern mit Ergebnis von SUM abfrag
 
Versuch mal
SQL-Code:
SELECT SERIALNUMMER, SUM(PLUSMINUS) AS SUMME
FROM SYSSIGMA.ZST_GERAETEBESTAND
WHERE SUM(PLUSMINUS) > 0
GROUP BY SERIALNUMMER
ORDER BY SERIALNUMMER

HolgerCW 11. Mai 2007 12:20

Re: SQL -> GROUP BY erweitern mit Ergebnis von SUM abfrag
 
Dann kommt die Fehlermeldung:

Gruppenfunktion hier nicht zulässig ...

Vielleicht weitere Tips ?

Gruss

Holger

mkinzler 11. Mai 2007 12:29

Re: SQL -> GROUP BY erweitern mit Ergebnis von SUM abfrag
 
SQL-Code:
SELECT SERIALNUMMER,SUMME FROM(
    SELECT SERIALNUMMER, SUM(PLUSMINUS) AS SUMME
    FROM SYSSIGMA.ZST_GERAETEBESTAND
    GROUP BY SERIALNUMMER
    ORDER BY SERIALNUMMER )
WHERE SUMME > 0

HolgerCW 11. Mai 2007 13:07

Re: SQL -> GROUP BY erweitern mit Ergebnis von SUM abfrag
 
Hallo,

so klappt es:

Delphi-Quellcode:
SELECT SUMME FROM( 
    SELECT SERIALNUMMER, SUM(PLUSMINUS) AS SUMME
    FROM SYSSIGMA.ZST_GERAETEBESTAND
    GROUP BY SERIALNUMMER
    ORDER BY SERIALNUMMER )
WHERE SUMME > 0
aber wenn ich mehr Spalten selektieren will kommt wieder ungültiger Spaltenname:

so klappt es NICHT:

Delphi-Quellcode:
SELECT SERIALNUMMER, SUMME FROM( 
    SELECT SERIALNUMMER, SUM(PLUSMINUS) AS SUMME
    FROM SYSSIGMA.ZST_GERAETEBESTAND
    GROUP BY SERIALNUMMER
    ORDER BY SERIALNUMMER )
WHERE SUMME > 0
Gruss

Holger

dfried 11. Mai 2007 13:14

Re: SQL -> GROUP BY erweitern mit Ergebnis von SUM abfrag
 
Die "Where-Bedingung" für den Group by ist "HAVING"

Delphi-Quellcode:
SELECT SERIALNUMMER, SUM(PLUSMINUS) AS SUMME
FROM SYSSIGMA.ZST_GERAETEBESTAND
GROUP BY SERIALNUMMER
HAVING SUM(PLUSMINUS) > 0
Den "Order by" kannst du dir übrigends sparen, da nach dem Gruppenfeld sowieso sortiert wird.

HolgerCW 11. Mai 2007 13:19

Re: SQL -> GROUP BY erweitern mit Ergebnis von SUM abfrag
 
Das war es. Jetzt klappt es.

Danke an euch beide

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz