Buch Dienstleistungen Downloads Diverses Forum Impressum

Select Distinct - aber wie?

Diskussionen zur SapQuery

Select Distinct - aber wie?

Beitragvon hespora » 03.02.2010, 18:49

Hallo,

(zunächst mal sorry für die vielen Anglizismen, die gleich kommen - ich arbeite in einem amerikanischen Konzern mit englischsprachigem SAP, daher kenne ich für viele Vorgänge und Felder nicht die passenden deutschen Namen.)

Ich möchte es anderen Usern ermöglichen, über die Eingabe einer Liste von Artikelnummern einen Bericht zu generieren, der sich nicht nur auf diese Artikel bezieht, sondern alle Artikel, die die gleiche Material Pricing Group (MVKE-KONDM) haben. Innerhalb von zwei Schritten ganz easy, als erstes eine Abfrage, in der das Feld KONDM für die eingegebenen Artikel zurückgegeben wird, dann eine zweite Abfrage, die aus diesen Werten dann den Bericht generiert. Kein Thema per Query oder Quickview.

Wir alle kennen aber sicher User, für die schon dieser Doppelschritt eigentlich schon zuviel Raum für Fehler beinhaltet, daher habe ich mich heute daran versucht, den Zwischenschritt zu sparen. Dazu erstelle ich mir eine Aliastabelle der MVKE, setze hier als selection field nur MATNR, diese joine ich dann auf die echte MVKE über die Felder VKORG und KONDM, und von dort aus gehen die restlichen Joins zu den übrigen Tabellen, die ich für meinen Bericht brauche.

Das funktioniert bei Selektion einer einzelnen Artikelnummer auch wunderbar, ebenso, wenn ich mehrere Artikelnummern eingebe, die unterschiedliche Werte für KONDM haben. Sobald ich aber 2 Artikelnummern eingebe, die die gleiche KONDM habe, sind im Bericht auch alle Artikel aus dieser KONDM doppelt. In klassischem SQL würde ich das per SELECT DISTINCT statt einem einfachen SELECT lösen, wie aber mache ich das in Query oder Quickview?
hespora
 
Beiträge: 1
Registriert: 03.02.2010, 16:53

Select Distinct - aber wie?

Google Werbung

Google Werbung
 

Re: Select Distinct - aber wie?

Beitragvon NicoManicone » 08.02.2010, 15:37

Hallo,
zunächst mal sorry für die vielen Anglizismen,

es gibt keine Probleme mit Denglish! ;-)

. Dazu erstelle ich mir eine Aliastabelle der MVKE, setze hier als selection field nur MATNR, diese joine ich dann auf die echte MVKE über die Felder VKORG und KONDM, und von dort aus gehen die restlichen Joins zu den übrigen Tabellen, die ich für meinen Bericht brauche.

Das funktioniert bei Selektion einer einzelnen Artikelnummer auch wunderbar, ebenso, wenn ich mehrere Artikelnummern eingebe, die unterschiedliche Werte für KONDM haben. Sobald ich aber 2 Artikelnummern eingebe, die die gleiche KONDM habe, sind im Bericht auch alle Artikel aus dieser KONDM doppelt. In klassischem SQL würde ich das per SELECT DISTINCT statt einem einfachen SELECT lösen, wie aber mache ich das in Query oder Quickview?


Ihr Problem können Sie mit einem Datenversorgungsprogramm lösen. Beim Anlegen vom Infoset die Option Datenbeschaffung durch Programm, bei Datenstruktur MVKE und den Radiobutton bei integriertes Programm angeben.

Dann im Infoset auf den Reiter Zusätze und dort in den Reiter Datenleseprogramm gehen. Dort die beiden Codestellen suchen und den Code eingeben.

Code: Alles auswählen
*-------------------------------------------------------------------*
*   selection screen statements
*-------------------------------------------------------------------*
*   (define your selection-screen here)
select-OPTIONS:
  SO_MATNR for MVKE-matnr.

* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_HEAD>


Code: Alles auswählen
*-------------------------------------------------------------------*
*   read data into IT_DATA
*-------------------------------------------------------------------*
*  (select your data here into internal table IT_DATA)

SELECT DISTINCT *
  INTO CORRESPONDING FIELDS OF TABLE it_data
  FROM mvke AS m1 INNER JOIN mvke AS m2
  ON m1~vkorg = m2~vkorg AND m1~kondm = m2~kondm
  WHERE m1~matnr IN so_matnr.


Viel Spaß!
NicoManicone
Administrator
 
Beiträge: 99
Registriert: 29.05.2004, 20:06


Zurück zu SapQuery

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron