Mtirt➤ А под каким пользователем вы это запускаете?
У него есть права на запуск этой процедуры?
Хм, не пришло в голову, что такая ошибка может быть связана с правами пользователя. Попытаюсь выяснить (кажется все наши аналитики пользуются этим единым аккаунтом)
Программисты Супермага давно все это оптимизировали.
Остатки на дату есть регистр SMGOODS минус (минус на минус :) -- да, я тоже "порадовался" читабельности этого подзапроса) все документы от текущего дня до нужной даты.
sql:
SQL код:
INSERT INTO TTRemains (StoreLoc, Article, Quantity)
(SELECT Location, Article, Quantity
FROM (select TG.Location, TG.Article, -SUM(TG.Quantity) Quantity
from (SELECT AL.Location, AL.Article, SUM(AL.Quantity) Quantity
FROM (SELECT D.LocationTo Location,
S.Article,
SUM(S.Quantity) Quantity
FROM SmDocuments D, SmSpec S
WHERE D.DocType = S.DocType
and D.ID = S.DocID
and D.LocationTo = v_dep.id
and D.DocState >= 2
and D.CreatedAt >
c.dat
GROUP BY D.LocationTo, S.Article
UNION ALL
SELECT D.LocationFrom Location,
S.Article,
SUM(-S.Quantity) Quantity
FROM SmDocuments D, SmSpec S
WHERE D.DocType = S.DocType
and D.ID = S.DocID
and D.LocationFrom = v_dep.id
and D.DocState >= 2
and D.CreatedAt >
c.dat
GROUP BY D.LocationFrom, S.Article) AL
GROUP BY AL.Location, AL.Article
HAVING SUM(AL.Quantity) <> 0
UNION ALL
SELECT smg.StoreLoc, smg.Article, -Quantity
FROM SMGoods smg
WHERE smg.Quantity <> 0
and smg.StoreLoc = v_dep.id) TG
group by TG.Location, TG.Article
having SUM(TG.Quantity) <> 0));