将多个数据库结果行放入一个流行中
我有一个数据库表,我们将其称为标头,其中包含一个 id 和一个名为“标头”的字符串字段。数据库中的另一个表称为 subheaders,它有两个字段:headerId 和字符串字段“subheader”。每个标头有 0、1 或 2 个子标头。我现在想使用 Kettle/Pentaho 数据集成生成包含以下列的 Excel 输出:
header subheader1 subheader2
我尝试了以下操作:“标题”上的表格输入、subheader1 的“子标题”上的表格输入、subheader2 的“子标题”上的表格输入。 “数据库查找”是不可能的,因为这不允许我在 subheader2 的查询中排除 subheader1。
我的主要问题是我无法直接引用 SQL 语句中的流字段,而是必须依赖字段的顺序。第一个问号被第一个流字段填充,依此类推。
查询: 对于“标题”表:
SELECT id, header FROM headers
对于“子标题”表(连续 2 个表输入步骤):
SELECT subheader AS subheader1, ? AS header FROM subheaders WHERE headerId = ?
SELECT ? AS subheader1, subheader AS subheader2, ? AS header WHERE headerId = ? <- doesn't work as I don't have a reference to the header-ID anymore
知道如何很好地解决这个问题吗?
感谢您的任何想法。
I have a database table, let's call it headers with an id and a String-field called "header". Another table in the database, called subheaders has two fields, headerId and the String field "subheader". There are 0, 1 or 2 subheaders per header. I now want to use Kettle/Pentaho Data Integration to generate an Excel output with the following columns:
header subheader1 subheader2
I tried the following: Table Input on "headers", table input on "subheaders" for subheader1, table input on "subheaders" for subheader2. A "database lookup" is not possible as that doesn't allow me to exclude the subheader1 in the query for subheader2.
My main problem is that I cannot reference the stream fields in the SQL statement directly but instead have to rely on the order of the fields. The first question mark gets filled with the first stream field, and so on.
The queries:
For the "headers" table:
SELECT id, header FROM headers
For the "subheaders" table (2 table input steps in a row):
SELECT subheader AS subheader1, ? AS header FROM subheaders WHERE headerId = ?
SELECT ? AS subheader1, subheader AS subheader2, ? AS header WHERE headerId = ? <- doesn't work as I don't have a reference to the header-ID anymore
Any idea, how to solve this problem nicely?
Thanks for any ideas.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通过在表输入中使用 JOIN 构造解决了这个问题。
I solved this problem by using a JOIN construct in a Table Input.