CREATE OR REPLACE FUNCTION "DELIVERED_QTY" (ordno IN VARCHAR2, itemid IN VARCHAR2)
RETURN NUMBER
IS
V NUMBER (5);
BEGIN
SELECT SUM (Qty)
INTO V
FROM BILLC c, BILLM m
WHERE c.BILL_NO_FK = m.BILL_NO
AND m.ORDER_NO = ORDNO
AND c.Item_id = ITEMID.
RETURN V;
END;
有谁能解释一下为什么我们在这个函数中使用2个参数ordno和itemid?
1条答案
按热度按时间sqxo8psd1#
您发布的代码是无效的,该过程甚至不会编译(当然也不会返回任何结果)。语句应以分号而不是点(
where
子句中的最后一个条件)结束。除此之外:为什么需要两个参数呢?因为
order_no
属于billm
表,并且item_id
属于billc
表所以-当你连接它们时,你需要将两个表中的列值与你传递的两个参数相匹配。
因此,函数返回该特定订单的每项数量**。
如果你-正如标题所示-想计算总数量每个订单,那么你不需要
itemid
参数: