Совсем запутался я в попытке оптимизации SQL запроса, поэтому прошу помощи
Вот этот запрос - правильно отрабатывает в саппорте
Код: Выделить всё
select KATSOPR.NSOPR,
KATSOPR.DSOPR,
KATMC.NAME,
SPORDER.KOL,
SPSOPR.PRICE,
katorg2.name,
KATORG.NAME,
KATPARTY.NAME,
SKLORDER.NORDER,
KATPODR.NAME,
KATORG.ADDR
from KATSOPR,
SPSOPR,
KATORG,
KATPARTY,
SKLORDER,
SPORDER,
KATPODR,
KATORG katorg2,
KATMC
where
((
201 == KATSOPR.VIDSOPR and
KATSOPR.NREC == SPSOPR.CSOPR and
KATSOPR.CORGBASE == KATORG.NREC and
SPSOPR.CMCUSL == KATMC.NREC and
1 == SPSOPR.PRMC and
SPSOPR.CPARTY == KATPARTY.NREC and
SPSOPR.NREC == SPORDER.CSPSOPR and
SPORDER.CSKLORDER == SKLORDER.NREC and
SKLORDER.CPODR == KATPODR.NREC and
KATSOPR.CGRUZTO == katorg2.NREC
));
Код: Выделить всё
use Test_Rus
select t.F$NSOPR '№ накладной',
t.F$DSOPR 'Дата накладной',
t6.F$NORDER '№ ордера',
t2.F$NAME 'Наименование товара',
t5.F$NAME 'Наименование партии',
t1.F$PRICE 'Цена за еденицу',
t4.F$KOL 'Кол-во отгруженного товара',
t31.F$NAME 'Наименование грузополучателя',
t31.F$ADDR 'адрес грузополучателя',
t3.F$NAME 'Наименование контрагента',
t7.F$NAME 'Название склада'
from T$SPSOPR as t1
INNER JOIN T$KATSOPR as t
ON t.F$NREC = t1.F$CSOPR
INNER JOIN T$KATMC as t2
ON t1.F$CMCUSL = t2.F$NREC
INNER JOIN T$SPORDER as t4
ON t1.F$NREC = t4.F$CSPSOPR
LEFT JOIN T$KATPARTY as t5
ON t1.F$CPARTY = t5.F$NREC
INNER JOIN T$SKLORDER as t6
ON t4.F$CSKLORDER = t6.F$NREC
INNER JOIN T$KATPODR as t7
ON t6.F$CPODR = t7.F$NREC,
T$KATORG as t3
INNER JOIN T$KATSOPR as tn
ON tn.F$CORGBASE = t3.F$NREC,
T$KATSOPR as tnn
INNER JOIN T$KATORG as t31
ON tnn.F$CGRUZTO = t31.F$NREC
where 201 = t.F$VIDSOPR and
1 = t1.F$PRMC
Так же если подправить не оптимизированный запрос он также выводит неверные данные, тк есть записи у которых нет наименования партии и это нормально. В общем прошу помощи чтобы разобраться.