https://imgur.com/a/ll59wjx - 图片
我试图计算当前的产品库存。 我有product_reception表,我可以在其中计算我的库存。 和销售(vanzari)表。
答案 0 :(得分:2)
将代码作为图片发布通常是一个坏主意。
无论如何:反对意见:
cod_pds in number
,而是par_cod_pds in number
is
和begin
之间。不要使用var
(密钥)字。命名它们是个好主意,以便名称反映这些是局部变量的事实,例如l_stoc_pds number
exec
,尤其不要运行select
语句。 SQL * Plus中使用exec
来运行PL / SQL过程,例如exec calculstoclazi
select into
以冒号开头的变量,而只是命名变量select
语句完全相同;这样做我不知道你打算做什么。此外,你在cod_pds
之前加stoc_pds
这是一个变量名(这是完全错误的);如果列名前面有某个东西,那就是表名(或其别名)因此,可能看起来像有效的代码是这样的;显然,结果将是0(零)。正如我告诉你的那样,这两个selects
完全一样。
create or replace procedure calculstoclazi
(par_cod_pds in number,
par_rezultat out number
)
is
l_stocs_pds number;
l_total_vanzare number;
begin
select sum(cantitate)
into l_stoc_pds
from receptie_marfa
where cod_pds = par_cod_pds;
select sum(cantitate)
into l_total_vanzare
from receptie_marfa
where cod_pds = par_cod_pds;
par_rezultat := l_stoc_pds - l_total_vanzare;
end;