Return 两个单独表的计数总和 PL/SQL
Return the sum of the count of two seperate tables PL/SQL
我试图在两个单独的表中搜索特定值的 COUNT
和函数中的 return。
FUNCTION check_parts
(p_partno IN VARCHAR2)
RETURN NUMBER
IS
out_exists NUMBER;
sub_exists NUMBER;
BEGIN
SELECT COUNT(*) INTO out_exists
FROM outline_pn op
WHERE op.outline_pn = p_partno
UNION ALL
SELECT COUNT(*)
FROM sub_pn sp
WHERE sp.sub_assy_pn = p_partno;
-- SELECT (SELECT COUNT(*) AS out_exists
-- FROM outline_pn op
-- WHERE op.outline_pn = p_partno) AS out_exists,
-- (SELECT COUNT(*) AS sub_exists
-- FROM sub_pn sp
-- WHERE sp.sub_assy_pn = p_partno) AS sub_exists
RETURN (out_exists + sub_exists);
END check_parts;
起初我天真地认为两个单独的 COUNT(*)
查询会起作用...它没有。
如何将两个单独的 COUNT
查询的值和 return 结果相加?
感谢任何帮助。
我找不到不使用两个单独查询的理由。然后你可以 return 两者的总和。你可以简单地写这样的东西:
FUNCTION check_parts
(p_partno IN VARCHAR2)
RETURN NUMBER
IS
out_exists NUMBER;
sub_exists NUMBER;
BEGIN
SELECT COUNT(*) INTO out_exists
FROM outline_pn op
WHERE op.outline_pn = p_partno;
SELECT COUNT(*) INTO sub_exits
FROM sub_pn sp
WHERE sp.sub_assy_pn = p_partno;
RETURN (out_exists + sub_exists);
END check_parts;
如果您仍想在一个查询中使用它,这里是选项
create FUNCTION check_parts
(p_partno IN VARCHAR2)
RETURN NUMBER
IS
sum_exists NUMBER;
BEGIN
select count(1) into sum_exists from (
SELECT outline_pn
FROM outline_pn op
WHERE op.outline_pn = p_partno
UNION ALL
SELECT sub_assy_pn
FROM sub_pn sp
WHERE sp.sub_assy_pn = p_partno);
RETURN (sum_exists);
END check_parts;
我试图在两个单独的表中搜索特定值的 COUNT
和函数中的 return。
FUNCTION check_parts
(p_partno IN VARCHAR2)
RETURN NUMBER
IS
out_exists NUMBER;
sub_exists NUMBER;
BEGIN
SELECT COUNT(*) INTO out_exists
FROM outline_pn op
WHERE op.outline_pn = p_partno
UNION ALL
SELECT COUNT(*)
FROM sub_pn sp
WHERE sp.sub_assy_pn = p_partno;
-- SELECT (SELECT COUNT(*) AS out_exists
-- FROM outline_pn op
-- WHERE op.outline_pn = p_partno) AS out_exists,
-- (SELECT COUNT(*) AS sub_exists
-- FROM sub_pn sp
-- WHERE sp.sub_assy_pn = p_partno) AS sub_exists
RETURN (out_exists + sub_exists);
END check_parts;
起初我天真地认为两个单独的 COUNT(*)
查询会起作用...它没有。
如何将两个单独的 COUNT
查询的值和 return 结果相加?
感谢任何帮助。
我找不到不使用两个单独查询的理由。然后你可以 return 两者的总和。你可以简单地写这样的东西:
FUNCTION check_parts
(p_partno IN VARCHAR2)
RETURN NUMBER
IS
out_exists NUMBER;
sub_exists NUMBER;
BEGIN
SELECT COUNT(*) INTO out_exists
FROM outline_pn op
WHERE op.outline_pn = p_partno;
SELECT COUNT(*) INTO sub_exits
FROM sub_pn sp
WHERE sp.sub_assy_pn = p_partno;
RETURN (out_exists + sub_exists);
END check_parts;
如果您仍想在一个查询中使用它,这里是选项
create FUNCTION check_parts
(p_partno IN VARCHAR2)
RETURN NUMBER
IS
sum_exists NUMBER;
BEGIN
select count(1) into sum_exists from (
SELECT outline_pn
FROM outline_pn op
WHERE op.outline_pn = p_partno
UNION ALL
SELECT sub_assy_pn
FROM sub_pn sp
WHERE sp.sub_assy_pn = p_partno);
RETURN (sum_exists);
END check_parts;