[英]SQL Server to PostgreSQL Sum Function
我为SQL Sever编写了以下代码。 它的目标是查询与产品相关的任何账单,以及每篇文章的总金额:
Create procedure sp_cons_fact (@id_fact int) as
Begin
Select * from v_det_fact_art where id_fact=@id_fact
Select sum(costo_x_art) as Tot_x_fact
from v_det_fact_art where id_fact=@id_fact
end
对于PostgreSQL,我已将该代码分为2个块。 第一块:
SELECT *
From v_det_fact_art
WHERE id_fact=id_factura ;
如果将id_factura更改为1,则显示:
第二块:
SELECT sum(costo_x_art) as Tot_x_Fact
From v_det_fact_art
WHERE id_fact = id_factura ;
如果将id_factura更改为1,则显示:
v_det_fact_art是具有以下内容的视图:
我期望拥有的是:
如您所见,标记为tot_x_fact的列是每个id_fact元素(在本例中为id_fact元素1)的costo_x_art内容的总和
两种情况下70003.22 + 300 = 70303.22
非常感谢!
这是一个例子-
SELECT * FROM MYT;
id | val
----+-----
1 | 10
1 | 20
1 | 30
2 | 10
2 | 40
(5 rows)
create function myfunc(x int) returns table (id int, value int, sum_val bigint)
as $$
WITH TMP AS (
SELECT sum(val) as Tot_x_Fact
From myt
WHERE id = $1
)
select * from myt vdfa CROSS JOIN tmp WHERE vdfa.id = $1;
$$ LANGUAGE SQL;
CREATE FUNCTION
pgp=# SELECT MYFUNC(1);
myfunc
-----------
(1,10,60)
(1,20,60)
(1,30,60)
(3 rows)
SELECT MYFUNC(2);
myfunc
-----------
(2,10,50)
(2,40,50)
(2 rows)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.