Страница 1 из 1

Количество по позиции

Добавлено: 11 фев 2011, 16:08
sildae
Накладная на отпуск сырья, во входящих к ней производственный заказ по позициям.
В средней части позиций входящего документа никак не могу найти количество к исполнению. В нижней части нашла, а в средней ну никак. spmnpl.nrec == valspmnp.cspmnpl ,valspmnp.kol - относится к входящему заказу, но при выборе позиций во входящих количество изменяется и не совпадает с количеством в заказе. Подскажите, пожалуйста, как найти количество к исполнению в средней панели.

select katsopr.NSOPR,SpObjAcc.KOLCFACT,spobjAcc.KOLCPOS,mnplan.number,katmc.name,spmnpl.NUMBER
from katsopr,SpMnPlan,mnplan,SpMnPl,SpObjAcc
where
((
comp(000200000000A10Dh)==katsopr.nrec
and katsopr.nrec==objacct.cowner
and objacct.cobject==mnplan.nrec
and mnplan.nrec == SpMnPlan.cMnPlan
and SpMnPlan.Nrec == SpMnPl.cSpMnPlan
and 23 == SpMnPl.wKolAn
and 1 == SpObjAcc.Kindrec
and 18 == SpObjAcc.typePos // тип текущей позиции
and SpMnPl.Nrec == SpObjAcc.cPos
and 45 == SpObjAcc.typeObj // тип позиции накладной
and 501 == SpObjAcc.VidSopr // накладная на отпуск сырья
and katsopr.nrec==spsopr.csopr
and spsopr.CMCUSL==katmc.nrec
))
and spsopr.nrec=spObjAcc.cobject
;

Re: Количество по позиции

Добавлено: 11 фев 2011, 17:22
Vik

Код: Выделить всё

select
 spobjAcc.KOLCPOS
from
ObjAccT
,SpObjAcc
where
((
     501                == ObjAccT.VidSopr and
     1                   == ObjAccT.KindRec and
     44                 == ObjAccT.typeOwn and
     cKatSopr        == ObjAccT.cOwner  and
     17                 == ObjAccT.typeObj and
     ObjAccT.Nrec == SpObjAcc.cObjAccT and
     0                   == SpObjAcc.TypeHier
))

;   

Re: Количество по позиции

Добавлено: 11 фев 2011, 17:38
RAJAH
Vik, это, вроде бы, будет количество из нижней панели.
А из средней: по-моему, надо ещё одну копию spobjacc присобачить.

Код: Выделить всё

select spobjacc2.kolcpos, ...
from ..., spobjacc spobjacc2, ...
where
((
...
spobjacc.cspobjacc /== spobjacc2.nrec and
...
))
...

Re: Количество по позиции

Добавлено: 11 фев 2011, 17:42
Vik
нет, это будет количество из средней панели) Про нижнюю ничего не сказано, поэтому я ее и не включил в выборку.

Re: Количество по позиции

Добавлено: 11 фев 2011, 17:47
sildae
Спасибо. Мне нужна и средняя, и нижняя.

Re: Количество по позиции

Добавлено: 11 фев 2011, 17:49
RAJAH
Vik
Получается, SpObjAcc.TypeHier = 0 - средняя, SpObjAcc.TypeHier = 1 - нижняя?

Re: Количество по позиции

Добавлено: 11 фев 2011, 17:57
sildae
да, получается, что так :) А средняя с нижней как-то тоже связаны?

Re: Количество по позиции

Добавлено: 11 фев 2011, 18:01
Vik
sildae писал(а):Спасибо. Мне нужна и средняя, и нижняя.
Ну, доделать не сложно)

Код: Выделить всё

select
 spobjAcc.KOLCPOS
,SpObjAcc1.KolcPos
from
ObjAccT
,SpObjAcc
,SpObjAcc SpObjAcc1
where
((
     501               == ObjAccT.VidSopr and
     1                 == ObjAccT.KindRec and
     44                == ObjAccT.typeOwn and
     cSopr == ObjAccT.cOwner  and
     17                == ObjAccT.typeObj and
     ObjAccT.Nrec      == SpObjAcc.cObjAccT and
     0                 == SpObjAcc.TypeHier and
     ObjAccT.Nrec      == SpObjAcc.cObjAccT and
     0                 == SpObjAcc.TypeHier and
     ObjAccT.Nrec      == SpObjAcc1.cObjAccT and
     SpObjAcc.Nrec     == SpObjAcc1.cSpObjAcc and
     1                 == SpObjAcc1.TypeHier
))

; 
RAJAH писал(а):Vik
Получается, SpObjAcc.TypeHier = 0 - средняя, SpObjAcc.TypeHier = 1 - нижняя?
Получается так.