问题概述:
apex 应用程序的目标是提供一种为生产中的各种项目或多或少填写清单的方法,每个生产项目都有一个需要满足的标准列表。客户希望能够在任何给定时间以特定格式将清单的当前进度导出到 CSV。
所需的格式是一个网格,其中每个行标题是需要在清单中完成的条件的名称,列标题是需要完成清单中的项目的名称。在零件和标准相交的单元格中,需要有一个响应(是、否、N/A...)
我遇到的问题来自这样一个事实,即每个导出的 csv 上需要的零件数量相差很大,我希望能够使用 apex 交互式报告中内置的“下载”功能以便用户可以在导出之前看到 CSV 的样子。
我尝试过的:
我已经考虑过为此使用集合,但导出的 CSV 中的部分(列)数量可能超过 50。我想我可以将其中许多部分连接在一起,但无论我加入多少,仍然存在上限CSV 中的部件数量过多,这是不可取的。
我也稍微研究过全局临时表,但我希望存储此数据的任何对象都特定于用户会话,所以我认为这也不可能。
我也查看了物化视图,但我不相信可以使用静态 SQL 查询创建客户所需的格式,但我可能是错的。
任何其他解决方案或我列出的解决方案之一的应用可以克服我列出的缺点,我们将不胜感激。
这就是我解决这个问题的方法:
PIVOT
动态生成列,而不是具有多列的表。 PIVOT 相当复杂,但来源很多。看看 Chris Saxon 的这个优秀的博客,但还有很多其他来源。