左联接三个查询

2020-08-24 16:54发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在研究WEBI Web Intelligence(SAP BusinessObjects BI Platform 4.2支持包6修补程序6版本:14.2.6.3064),该数据库已连接到单个数据库Universe,其中包含有关我们库存和出售物品的非常复杂的数据。 我只能访问报表设计,而不能访问Universe设计。

数据流使得在制造项目时会创建一个内置记录。 然后过了一段时间,它到达了我们的仓库,并创建了一个库存记录。 然后,在出售时会创建一个"已售"记录。

不幸的是,由于数据库/Universe的设计方式,如果您尝试检索尚未售出商品的任何"已售出"数据,它将不会检索该商品的任何数据(甚至"已建"或"库存" 数据),就好像该项目不存在一样。 因此,我们必须分别查询"已构建","库存"和"已售出"数据。

因此,我尝试创建一个跨三个独立查询进行左联接的报告:-

qLookup = Excel表仅包含[ItemID]的一列(我们库存的每个项目都有唯一的序列号)
qStock =宇宙查询,该查询返回[ItemID],[StockDate]并被过滤以返回全部 当前库存中的记录
qSales =宇宙查询,该查询返回[ItemID],[SoldDate],并经过过滤以返回所有已售出的记录

我想要一个报告,该报告将列出qLookup中的所有[ItemID](无论它们存在于qStock或qSales中),然后详细说明[StockDate](如果没有库存记录,则为Null)和[SoldDate](如果没有销售记录,则为Null) )作为该[ItemID]。

在SQL中,我将执行qLookup并让其加入其他两个查询:-

从以下位置选择qLookup.ItemID,qStock.StockDate,qSales.SoldDate(qLookup左联接qStock ON qLookup.ItemID = qStock.ItemID)左联接qSales on qLookup.ItemID = qSales.ItemID

但是,在WEBI中,我似乎无法通过跨qLookup.ItemID,qStock.ItemID和qSales.ItemID合并ItemID维度来做到这一点。 一旦qStock或qSales不返回[ItemID]的记录,整个行将从报表中删除,就好像它甚至在qLookup中都不存在一样。

有人知道在WEBI中是否可行?

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在研究WEBI Web Intelligence(SAP BusinessObjects BI Platform 4.2支持包6修补程序6版本:14.2.6.3064),该数据库已连接到单个数据库Universe,其中包含有关我们库存和出售物品的非常复杂的数据。 我只能访问报表设计,而不能访问Universe设计。

数据流使得在制造项目时会创建一个内置记录。 然后过了一段时间,它到达了我们的仓库,并创建了一个库存记录。 然后,在出售时会创建一个"已售"记录。

不幸的是,由于数据库/Universe的设计方式,如果您尝试检索尚未售出商品的任何"已售出"数据,它将不会检索该商品的任何数据(甚至"已建"或"库存" 数据),就好像该项目不存在一样。 因此,我们必须分别查询"已构建","库存"和"已售出"数据。

因此,我尝试创建一个跨三个独立查询进行左联接的报告:-

qLookup = Excel表仅包含[ItemID]的一列(我们库存的每个项目都有唯一的序列号)
qStock =宇宙查询,该查询返回[ItemID],[StockDate]并被过滤以返回全部 当前库存中的记录
qSales =宇宙查询,该查询返回[ItemID],[SoldDate],并经过过滤以返回所有已售出的记录

我想要一个报告,该报告将列出qLookup中的所有[ItemID](无论它们存在于qStock或qSales中),然后详细说明[StockDate](如果没有库存记录,则为Null)和[SoldDate](如果没有销售记录,则为Null) )作为该[ItemID]。

在SQL中,我将执行qLookup并让其加入其他两个查询:-

从以下位置选择qLookup.ItemID,qStock.StockDate,qSales.SoldDate(qLookup左联接qStock ON qLookup.ItemID = qStock.ItemID)左联接qSales on qLookup.ItemID = qSales.ItemID

但是,在WEBI中,我似乎无法通过跨qLookup.ItemID,qStock.ItemID和qSales.ItemID合并ItemID维度来做到这一点。 一旦qStock或qSales不返回[ItemID]的记录,整个行将从报表中删除,就好像它甚至在qLookup中都不存在一样。

有人知道在WEBI中是否可行?

谢谢

付费偷看设置
发送
2条回答
葫芦娃快救爷爷
1楼 · 2020-08-24 17:42.采纳回答

我今天再次进行了讨论,并找到了解决方案。 我将其编写为可以遵循的步骤。

1。 合并三个维度(qLookup.ItemID,qStock.ItemID,qSales.ItemID)
2。 创建一个表对象,并插入具有所需尺寸的列作为左连接(qLookup.ItemID)
3。 右键单击表的边缘>设置表格式...>常规>勾选"显示具有空维值的行">单击"确定"
4。 根据[Merged ItemID]创建两个类型为'Detail'的新变量,每个变量都具有一个公式,该公式仅返回联接另一侧的一个字段(" = qStock.StockDate"和" = qSales.SoldDate")< br> 5。 将两个新的局部变量添加到表块
6。 利润:)

bbpeas
2楼-- · 2020-08-24 17:58

您好,
我想您应该合并维度,然后从查询qStock和qSales中设置最终的维度/属性作为您所使用表中的度量 在WebI中进行开发。 强烈建议使用ForceUnion()函数。

HTH

丹尼尔瓷砖

一周热门 更多>