查询指定的返回元组有n +列但交叉表返回n

时间:2015-08-26 11:01:06

标签: sql postgresql crosstab

我有交叉表查询可以返回31天的值,问题是当我执行包含30天的月份查询时遇到以下错误

查询指定的返回元组有n +列,但交叉表返回n。

查询

SELECT * FROM crosstab(SELECT id, present FROM attendance) AS ("id" int,"1" boolean,....."31" boolean)

我希望第31列需要填充null

或者是否可以创建类似下面的sql函数并使用它根据length_of_the_month生成所需的列

len_month = 30
counts = 0
CREATE OR REPLACE FUNCTION days_as_column (counts integer, len_month integer)
  RETURNS varchar
AS $$
while (counts < len_month):
counts = counts + 1
print '"%s" varchar(10),' % (counts) 
$$ LANGUAGE plpythonu;

0 个答案:

没有答案