2020-08-15 07:08发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在尝试使用SQ02" infoset creation"操作联接3个表。 这些表有一个公共键字段,即连接器ID,
3个表还具有一个带有不同值的" Action"字段; 有什么办法可以水平组合这些值的线吗?
很抱歉再次提出要求,但仍不能100%明确您要实现的目标。
a)您现在拥有什么:
当前,您可能 通过它们的主/次ID将所有4个表连接起来,从而根据它们的来源导致特定的表列,因此GRACACTUSAGE〜Action <> GRACCHANGELOG〜Action:
| GRACFFLOG〜FFLOG_ID | GRACACTUSAGE〜动作| GRACCHANGELOG〜动作| ================================================== ================= | 1 | 动作| 动作|
b)您想要的是:
但是,您希望获得的记录与仅连接GRACFFLOG,GRACREPMAPP和GRACACTUSAGE分开,而不是通过它们的辅助ID联接所有4个表 来自GRACFFLOG和GRACCHANGELOG的记录,导致两个选择的并集正确吗?
| GRACFFLOG〜FFLOG_ID | GRACACTUSAGE/GRACCHANGELOG〜动作| ================================================== ======== | 1 | 动作| | 1 | 动作|
c)如何使用信息集进行UNION选择:
信息集要么支持单个数据库选择,要么加入数据库,但不支持select语句的并集。
要执行合并,您需要使用"集成数据读取程序"制作一个INFOSET。 在此程序中,您需要从第一个表中选择数据,然后再从第二个表中附加数据,例如:
"首先选择 选择GRACFFLOG〜FFLOG_ID GRACACTUSAGE〜操作 来自GRACFFLOG GRACFFLOG〜FFLOG_ID上的内部联接GRACREPMAP = GRACREPMAP〜FFLOG_ID GRACREPMAP〜ACTION_ID上的内部联接GRACACTUSAGE = GRACACTUSAGE〜ACTION_USAGE_ID 到表it_data 哪里(wherestatement)。 "第二选择 选择GRACFFLOG〜FFLOG_ID GRACCHANGELOG〜动作 来自GRACFFLOG GRACFFLOG〜FFLOG_ID上的内部联接GRACCHANGELOG = GRACCHANGELOG〜FFLOG_ID 追加表it_data"追加,因此不会删除现有记录 在哪里(wherestatement)。
您可以进行可视化和/或示例表和"连接"来阐明您的要求吗?
以下是我的信息集的可视化 和所需的最终输出
如果要所有记录,则不需要where子句。 如果要基于固定限制或基于必须向下传递的用户选择来选择记录,则需要为where语句包括限制。 这些属性可以通过属性"硬编码"(例如" WHERE fflog_id = p_param ..."或" WHERE fflog_id IN so_param AND attr2 = p_param2 ..."),也可以基于"动态"字符串(例如" WHERE" (lv_where_clause)")。
是的,这就是我想要做的。
谢谢您的详细回答:D
最后一个问题:在"哪里"之后应该添加什么?
最多设置5个标签!
很抱歉再次提出要求,但仍不能100%明确您要实现的目标。
a)您现在拥有什么:
当前,您可能 通过它们的主/次ID将所有4个表连接起来,从而根据它们的来源导致特定的表列,因此GRACACTUSAGE〜Action <> GRACCHANGELOG〜Action:
b)您想要的是:
但是,您希望获得的记录与仅连接GRACFFLOG,GRACREPMAPP和GRACACTUSAGE分开,而不是通过它们的辅助ID联接所有4个表 来自GRACFFLOG和GRACCHANGELOG的记录,导致两个选择的并集正确吗?
c)如何使用信息集进行UNION选择:
信息集要么支持单个数据库选择,要么加入数据库,但不支持select语句的并集。
要执行合并,您需要使用"集成数据读取程序"制作一个INFOSET。 在此程序中,您需要从第一个表中选择数据,然后再从第二个表中附加数据,例如:
您可以进行可视化和/或示例表和"连接"来阐明您的要求吗?
以下是我的信息集的可视化 和所需的最终输出
如果要所有记录,则不需要where子句。 如果要基于固定限制或基于必须向下传递的用户选择来选择记录,则需要为where语句包括限制。 这些属性可以通过属性"硬编码"(例如" WHERE fflog_id = p_param ..."或" WHERE fflog_id IN so_param AND attr2 = p_param2 ..."),也可以基于"动态"字符串(例如" WHERE" (lv_where_clause)")。
是的,这就是我想要做的。
谢谢您的详细回答:D
最后一个问题:在"哪里"之后应该添加什么?
一周热门 更多>