Simmike написал(а):
profiteer написал(а):
Есть страшный select из bseg'a. Хочу заменить его на выборку из bsis и bsas.
Будет ли выборка из bsis и bsas в самом общем случае эквивалентна выборке из bseg?
Или надо еще добирать данные из bsik, bsak, bsid, bsad, и bset (в общем случае)?
Задача неясна. все завсит что ты ищешь в bseg. Какие определяющие параметры (кредиторы/дебиторы, счета, выравнивание, тексты и др )
В зависимости от этого и определяется оптимальный вариант выборки данных из таблиц, и из каких таблиц.
Если речь только о позициях ОС то предполагаю что можно...
а если про все данные говорить.... то BSEG = bsik + bsak + bsid + bsad + bsis +bsas + bset + что-то второстепенное...
А вот что быстрее будет искаться - это уже вопрос

В общем вот он этот запрос:
Code:
SELECT * FROM bseg WHERE bukrs IN bukrs AND
* >> комментарий
* Здесь определяется не только доп.расходы, но и сумма выручки
* <<
gjahr IN gjahr AND
hkont IN ranbwa AND
( anln1 IN anln1 AND
anln2 IN ranln2 AND
shkzg EQ 'H' ) OR
( zuonr IN danln1 AND
shkzg EQ 'S' ).
При этом ranbwa содержит значения:
I |EQ |9120032110| |
I |EQ |9120032121| |
I |EQ |9120111140| |
I |EQ |9120100130| |
I |EQ |9120032211| |
I |EQ |9120034102| |
I |EQ |7902000100| |
I |EQ |9120111001| |
I |EQ |9110021101| |
I |EQ |9120031121| |
I |EQ |9120031310| |
I |EQ |9120031111| |
I |EQ |9120031211| |
а таблицы anln1, ranln2 и danln1 - пустые.
Что это может значить... наверное все-таки основные средства?