ABAP-SQL Frage

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge Seite 1 von 1
7 Beiträge Seite 1 von 1

ABAP-SQL Frage

Beitrag von DaHipster (ForumUser / 2 / 0 / 0 ) » 1. Dez 2003 18:04

Ich möchte diese Abfrage ausführen:
SELECT name, MAX(wert) AS maxwert
FROM test
GROUP BY name
HAVING maxwert <= 5
ORDER BY wert;

ABAP meckert, dass das Feld maxwert unbekannt sei - wie schwach ist das denn? Sieht für mich nach 100% standard aus. :?

Weiss jemand, wie man´s formulieren muss, damit sogar ABAP damit umgehen kann?


Beitrag von Gast ( / / 0 / 3 ) » 1. Dez 2003 18:38

Vielleicht: SELECT name MAX( wert ) AS maxwert FROM test

:roll:

Re: ABAP-SQL Frage

Beitrag von Frank Dittrich (Expert / 674 / 0 / 16 ) » 1. Dez 2003 18:54

DaHipster hat geschrieben:Ich möchte diese Abfrage ausführen:
SELECT name, MAX(wert) AS maxwert
FROM test
GROUP BY name
HAVING maxwert <= 5
ORDER BY wert;

ABAP meckert, dass das Feld maxwert unbekannt sei - wie schwach ist das denn? Sieht für mich nach 100% standard aus. :?

Weiss jemand, wie man´s formulieren muss, damit sogar ABAP damit umgehen kann?

Code: Alles auswählen.

SELECT name MAX( wert ) AS maxwert
       FROM test 
       INTO ... " (feld1, feld2) | [CORRESPONDING FIELDS OF] wa | TABLE itab
*      alternativ APPENDING ...
       GROUP BY name
       HAVING MAX( wert ) <= 5
       ORDER BY maxwert.
* je nach Option bei INTO fehlt dann noch ein ENDSELECT nach Verarbeitung der Daten

Beitrag von DaHipster (ForumUser / 2 / 0 / 0 ) » 2. Dez 2003 09:10

Granatengute Idee, im HAVING nochmal zu aggregieren. Damit hat´s dann auch geklappt.

Danke! :D

Beitrag von Gast ( / / 0 / 3 ) » 2. Dez 2003 10:39

Bist Du Dir sicher, dass der Fehler daran lag/liegt :roll:

Beitrag von Asaph (Expert / 579 / 6 / 0 ) » 3. Dez 2003 13:11

Hallo allerseits,

ich habe eine ähnliches Problem:

ich suche die Differenz (difku) mit dem höchsten Ladedatum (lddat),
um eine kumulierte Differenz fortzuschreiben.

da ich es mit dem obigem Beispiel nicht hinbekomme, teile ich Z.Zt
die Selektion auf :

Code: Alles auswählen.

    SELECT max( lddat ) FROM  ZSUM CLIENT SPECIFIED
              into hvdat
           WHERE  MANDT  = sy-mandt
           AND    BUKRS  = sumtab-bukrs
           AND    LDDAT  lt sumtab-lddat
           AND    GVORF  = sumtab-gvorf.

    SELECT single difku FROM  ZSUM CLIENT SPECIFIED
              into wa-difku
           WHERE  MANDT  = sy-mandt
           AND    BUKRS  = sumtab-bukrs
           AND    LDDAT  = hvdat
           AND    GVORF  = sumtab-gvorf.
gibt es eine Möglichkeit dies mit einem select-Statement hinzubekommen ?
es muß ein Einzelsatzzugriff sein, da nur ein Satz Pro Bukrs/Lddat/Gvorf existiert (i.e. kein Select-endselect statement):!:


Gruß Andreas

Beitrag von Gast ( / / 0 / 3 ) » 3. Dez 2003 19:57

Möglicherweise habe ich die Aufgabenstellung nicht verstanden aber
warum nicht eine subquery?

Code: Alles auswählen.

  select difku from zsum into wa_difku
          where bukrs = sumtab-bukrs 
             and gvorf = sumtab-gvirf
             and lddat =  select max( lddat ) from zsum 
                                 where bukrs = sumtab-bukrs 
                                   and  gvorf = sumtab-gvorf. 

 
Ich glaube bei der Subqury fehlen noch ein paar Klammern...da musst Du Dir nochmals die Syntax genauer anschauen.
client specified kannst Du Dir übrigens sparen, wenn Du mit sy-mandt darauf zugreifst - diese where bed. ist implizit immer vorhanden.

Deine Bemerkung mit dem Einzelsatz lesen habe ich auch nicht verstanden - wenn nur ein Eintrag da ist liest auch select-endselect nur einer (oder man kann es mit up to 1 rows einschränken).
Ich vermute, der select wird in eienr Schleife über eine interne Tabelle sumtab aufgerufen. Möglicherweise würde es sich anbieten ein Select into table durchzuführen mit group by bukrs gvorf. Array fetches sind performanter als Einzelsatzzugriffe.

Trotz allen Unklarheiten - hoffe ich, dass Dir das etwas weiterhilft
Christian

Seite 1 von 1

Aktuelle Forenbeiträge

ABAP Clean Code
vor 58 Minuten von deejey 54 / 1336
Funktionsbaustein READ_TEXT
vor 17 Stunden von Tron 2 / 121
Code lesen
Gestern von GastX 5 / 1464
CL_GUI_TEXTEDIT im Subscreen
Gestern von black_adept 2 / 84

Unbeantwortete Forenbeiträge

HowTo? Reisekosten PR05: Land hinzufügen
vor 2 Tagen von Florian9999 1 / 75
eMail Versand Faktura, falscher Betreff in eMail
vor 2 Tagen von bapimueller 1 / 74
[GELÖST] Kundenhierarchien in der Preisfindung
vor 3 Tagen von SAP_ENTWICKLER 1 / 84
[GELÖST] Feld KNVV-BOIDT
vor einer Woche von SAP_ENTWICKLER 1 / 65