在DB2中,根据每月日期范围获取每周数据作为一行

在DB2中,根据每月日期范围获取每周数据作为一行,db2,Db2,是否有一种方法可以从每月日期范围动态地将周结束日期添加为查询中的列标题?我已经写了下面的查询,并得到了预期的结果 select metername , sum(delta) from TABLE where metername='abc' AND (readingdate >= DATE ('2020-04-01') AND readingdate < DATE ('2020-04-30') + 1 DAY) group by metername, week(readingda

是否有一种方法可以从每月日期范围动态地将周结束日期添加为查询中的列标题?我已经写了下面的查询,并得到了预期的结果

select metername , sum(delta) from TABLE where metername='abc'
 AND (readingdate >= DATE ('2020-04-01')  AND readingdate < DATE ('2020-04-30') + 1 DAY)
 group by metername, week(readingdate); 
电流输出

预期输出-标题也应具有周结束日期


不,你不能!至少不在SELECT语句中

根据定义,列/别名是SQL标识符

作为新列名 命名或重命名结果列。名称不能限定且不必唯一。新列名是128 UTF-8字节或更少的SQL标识符

还有一个SQL标识符,它只是一个固定的名称。不能是所需表达式的结果。


正如@Mark Barinstein所建议的,您需要一个SP来完成此任务

列的数量可能不同,因此,您需要运行ethier 1存储过程,返回结果集/填充某些临时表,或运行2复合语句填充某些临时表。所以,在任何情况下,这都是一些程序逻辑。