Posted: Mon Sep 27, 2010 12:14 pm Post subject: сумма оплаченных счетов (BSIK и BSAK)
Может кто-то уже сталкивался, как рассчитать сумму оплаченных счетов за определенные период времени?
выборку на подсчет неоплаченные (переданные на оплату) я делаю так:
Code:
lb_data = '20100101'.
le_data = '20100131'.
SELECT DISTINCT a~buzei a~ebeln a~PROJK a~wrbtr a~BELNR a~GJAHR a~BUDAT awkey
INTO CORRESPONDING FIELDS OF TABLE gt_dat
FROM BSIK AS a
INNER JOIN BKPF AS b ON b~BELNR = a~BELNR
INNER JOIN lfa1 AS c ON c~lifnr = a~lifnr
WHERE
AUGBL = ''
AND ZLSPR NE '*'
AND a~BLART NE 'KZ'
AND a~BLART NE 'KR'
AND a~BLART NE 'TR'
AND a~BLART NE 'WE'
AND a~BUDAT BETWEEN lb_data AND le_data
AND a~BLART NE 'AB'
AND SHKZG EQ 'H'
.
SELECT DISTINCT buzei a~ebeln a~PROJK a~wrbtr a~BELNR a~GJAHR a~BUDAT awkey
APPENDING CORRESPONDING FIELDS OF TABLE gt_dat
FROM BSAK AS a
INNER JOIN BKPF AS b ON b~BELNR = a~BELNR
INNER JOIN lfa1 AS c ON c~lifnr = a~lifnr
WHERE AUGBL = ''
AND ZLSPR NE '*'
AND a~BLART NE 'KZ'
AND a~BLART NE 'KR'
AND a~BLART NE 'TR'
AND a~BLART NE 'WE'
AND a~BUDAT BETWEEN lb_data AND le_data
AND a~BLART NE 'AB'
AND SHKZG EQ 'H'
.
SORT gt_dat BY EBELN.
вроде сделал, может кому то пригодиться или может кто-то подправит если я сделал ошибку:
Code:
SELECT DISTINCT a~buzei a~ebeln a~PROJK as PS_PSP_PNR a~wrbtr a~BELNR a~GJAHR a~BUDAT a~AUFNR
INTO CORRESPONDING FIELDS OF TABLE T_SUMM_OPL
FROM BSIK AS a
INNER JOIN BKPF AS b ON b~BELNR = a~BELNR
INNER JOIN lfa1 AS c ON c~lifnr = a~lifnr
WHERE
ZLSPR NE '*' AND
a~BLART = 'KZ' AND
( a~BSCHL <> '39' AND a~BSCHL <> '27' ) AND
a~BUDAT BETWEEN lb_data AND le_data.
SELECT DISTINCT buzei a~ebeln a~PROJK as PS_PSP_PNR a~wrbtr a~BELNR a~GJAHR a~BUDAT a~AUFNR
APPENDING CORRESPONDING FIELDS OF TABLE T_SUMM_OPL
FROM BSAK AS a
INNER JOIN BKPF AS b ON b~BELNR = a~BELNR
INNER JOIN lfa1 AS c ON c~lifnr = a~lifnr
WHERE
ZLSPR NE '*' AND
a~BLART = 'KZ' AND
( a~BSCHL <> '39' AND a~BSCHL <> '27' ) AND
a~BUDAT BETWEEN lb_data AND le_data.
Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Mon Sep 27, 2010 2:16 pm Post subject:
Суровый селект.
1) Зачем из BSIK выбирать данные? Это открытые позиции.
2) Уберите join на bkpf, Вы не правильно таблицы связываете и поля из bkpf не присутствуют ни в выбираемых полях, ни в условии.
PS: в BSAK попадают уже склиренные счета. А если оплата пришла, но еще ни склирена, то ваш селект их не учитывает. Это так, для справки. Может по заданию их и не нужно отображать. _________________ Молитва - это запрос разработчику на изменение кода программы.
Суровый селект.
1) Зачем из BSIK выбирать данные? Это открытые позиции.
2) Уберите join на bkpf, Вы не правильно таблицы связываете и поля из bkpf не присутствуют ни в выбираемых полях, ни в условии.
PS: в BSAK попадают уже склиренные счета. А если оплата пришла, но еще ни склирена, то ваш селект их не учитывает. Это так, для справки. Может по заданию их и не нужно отображать.
1. просто у нас они всегда открытые (как -то заведено)...
2. да и правда, я сначала думал верно было бы искать период через дату с bkpf, потом передумал, а джоин таблицы забыл убрать - спасибо!
и по поводу клиринга, у нас тоже не используется это, и не будет... (
Age: 47 Joined: 14 Nov 2008 Posts: 300 Location: Russia
Posted: Mon Sep 27, 2010 10:43 pm Post subject:
Sed0Y wrote:
vga wrote:
Суровый селект.
1) Зачем из BSIK выбирать данные? Это открытые позиции.
2) Уберите join на bkpf, Вы не правильно таблицы связываете и поля из bkpf не присутствуют ни в выбираемых полях, ни в условии.
PS: в BSAK попадают уже склиренные счета. А если оплата пришла, но еще ни склирена, то ваш селект их не учитывает. Это так, для справки. Может по заданию их и не нужно отображать.
1. просто у нас они всегда открытые (как -то заведено)...
2. да и правда, я сначала думал верно было бы искать период через дату с bkpf, потом передумал, а джоин таблицы забыл убрать - спасибо!
и по поводу клиринга, у нас тоже не используется это, и не будет... (
Большое спасибо за попровку!!
JOIN и с LFA1 тоже можно убрать, поскольку в BSIK/BSAK поле LIFNR всегда будет заполнено существующим справочным значением. И ещё: "лишний" JOIN с BKPF написан неправильно, в будущем используйте максимально возможное число ключевых столбцов для аналогичных запросов с соединениями таблиц БД (в т.ч. и для целей оптимизации). _________________ ABAP/4 You
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.