Du hast doch von TWP den richtigen Ansatz bekommen. Vereinfache den Selekt, die Summierungstabelle je Tag kann mit einfachen Tabellenoperationen aufgebaut werden.thomasxy hat geschrieben:Hoffe es hat jemand einen Tipp.
Code: Alles auswählen.
TYPES: BEGIN OF t_sales,
erdat TYPE vbap-erdat,
vstel type vbap-vstel,
count TYPE i,
END OF t_sales.
DATA: gt_sales TYPE TABLE OF t_sales,
gw_sales TYPE t_sales.
TYPES: BEGIN OF t_sum,
erdat TYPE vbap-erdat,
vstel1 type i,
vstel2 type i,
vstel3 type i,
vstel4 type i,
gesamt type i,
END OF t_sum.
DATA: gt_sum TYPE TABLE OF t_sum,
gw_sum TYPE t_sum.
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-i01.
PARAMETERS: p_vkorg TYPE vbak-vkorg DEFAULT '4100'.
SELECT-OPTIONS: s_erdat FOR gw_sales-erdat.
SELECTION-SCREEN END OF BLOCK 1.
START-OF-SELECTION.
* Daten lesen
SELECT vbap~erdat
vbap~vstel
COUNT( DISTINCT vbak~vbeln )
INTO TABLE gt_sales
FROM vbak
JOIN vbap
ON vbap~vbeln = vbak~vbeln
WHERE vbak~vkorg = p_vkorg
AND vbak~erdat IN s_erdat
AND vbap~vstel IN ('4100', '4101', '4102', '4103' )
GROUP BY vbap~erdat vbap~vstel.
* Sortieren
SORT gt_sales BY erdat vstel.
* Summen bilden
LOOP AT gt_sales INTO gw_sales.
CLEAR gw_sum.
gw_sum-erdat = gw_sales-erdat.
CASE gw_sales-vstel.
WHEN '4100'.
gw_sum-vstel1 = gw_sales-count.
gw_sum-gesamt = gw_sales-count.
WHEN '4101'.
gw_sum-vstel2 = gw_sales-count.
gw_sum-gesamt = gw_sales-count.
WHEN '4102'.
gw_sum-vstel3 = gw_sales-count.
gw_sum-gesamt = gw_sales-count.
WHEN '4103'.
gw_sum-vstel4 = gw_sales-count.
gw_sum-gesamt = gw_sales-count.
ENDCASE.
COLLECT gw_sum INTO gt_sum.
ENDLOOP.
Naja, zumindest sieht man wer die Online-Hilfe zu SELECT lesen kann. SO schwierig war die Aufgabe nu auch nich.thomasxy hat geschrieben:oh super vielen dank.
da sieht man direkt wer abap kann;-)