Pgadmin-通过过程将行从另一个表插入表中

时间:2014-12-10 11:34:05

标签: sql postgresql stored-procedures

我已经使用列f_tablequarter创建了表sums。显示错误:

ERROR:  syntax error at or near "SELECT".

功能:

CREATE OR REPLACE FUNCTION func4()

RETURNS void AS

$BODY$

BEGIN

insert into f_table  values
(
SELECT

tab1.quarter,

sum(tab2.tot)

FROM 

tab1

INNER JOIN 

tab2

ON

tab1_key=tab2_key

GROUP BY(tab1.quarter)

order by (quarter) asc

distributed by(quarter));

END;

$BODY$

LANGUAGE plpgsql VOLATILE;

任何人都可以帮我吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

正确的语法是INSERT..SELECT,删除VALUES。这只有在f_table有2列时才有效,如果没有,你需要指定列

insert into f_table  (somecol,someothercol)
(
SELECT
tab1.quarter,
sum(tab2.tot)
FROM 
tab1
INNER JOIN 
tab2
ON
tab1.key=tab2.key
GROUP BY(tab1.quarter)
order by (tab1.quarter) asc
distributed by(tab1.quarter))

答案 1 :(得分:0)

它的解决不需要分发,因为它不是一个表创建,它的jus是一个插入。

删除分发后的工作正常。

感谢您的回复。