在计算的脚本视图中联接表的问题

2020-08-26 15:57发布

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

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


亲爱的

我有一个要求,我们有两个表,我需要根据帐号将这两个表连接起来,

最终要求是获取最后一个DOC_DATE和相关的DOC_NUMBER作为每个帐户(2020和Doc_NUMBER 9)的最终收入

有人可以帮我实现这个目标吗?

谢谢

(12.9 kB)

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

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


亲爱的

我有一个要求,我们有两个表,我需要根据帐号将这两个表连接起来,

最终要求是获取最后一个DOC_DATE和相关的DOC_NUMBER作为每个帐户(2020和Doc_NUMBER 9)的最终收入

有人可以帮我实现这个目标吗?

谢谢

(12.9 kB)
付费偷看设置
发送
7条回答
callcenter油条
1楼-- · 2020-08-26 16:54

为什么要加入联接而不是联合,并希望每个Account和DocDate获得最大值? 诸如此类:

 SELECT帐户,doc_date,max(doc_number)
 从
   (
            SELECT帐户,doc_date,doc_number来自TABLE1 
UNION SELECT帐户,doc_date,doc_number来自TABLE2 ) GROUP BY帐户,doc_date;
粗暴的香蕉
2楼-- · 2020-08-26 16:56

我认为您先尝试尝试,否则您将无法学习。 请先尝试,如果您遇到的错误会帮助您纠正错误。

请看一下此博客。在HANA中使用SQL联接

能不能别闹
3楼-- · 2020-08-26 16:41

嗨,

请参考下面的SQL查询以根据您的要求获取结果。 您可以用表替换TABLE_1和TABLE_2。

开始
 TABLE_1 =从DUMMY中选择'A'作为帐户,'2018'作为DOC_DATE,1作为DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2019"作为DOC_DATE,2作为DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2020"作为DOC_DATE,3个DOC_NUMBER
 ;

 TABLE_2 =从DUMMY中选择'A'作为帐户,'2018'作为DOC_DATE,4作为DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2018"作为DOC_DATE,5作为DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2019"作为DOC_DATE,6作为DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2019"作为DOC_DATE,7作为DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2020"作为DOC_DATE,8个DOC_NUMBER
 全联盟
 从DUMMY中选择" A"作为帐户," 2020"作为DOC_DATE,9作为DOC_NUMBER
 ;

 选择*从
 (
 至少选择一个帐户,DOC_DATE,DOC_NUMBER,ROW_NUMBER()(按帐户顺序排列,依次为DOC_DATE DESC,DOC_NUMBER DESC)
 从
 (
 SELECT帐户,DOC_DATE,DOC_NUMBER
 来自:TABLE_1
 全联盟
 SELECT帐户,DOC_DATE,DOC_NUMBER
 来自:TABLE_2
 )
 )排名= 1
 ;

 END 
打个大熊猫
4楼-- · 2020-08-26 16:55

你好Nawanandana,

感谢您的回复和建议,实际上,我认为我对问题的描述有点简单。 我加入时没有问题...
在我的情况下,我需要使用Row_Number ..但是当我在(分区使用)之上使用Row_number()时,Hana不接受我......

代楠1984
5楼-- · 2020-08-26 17:00

以Florians解决方案为基础,我认为您只需要稍微修改一下他的SQL语句即可。

SELECT帐户,最大(doc_date)为doc_date,最大(doc_number)为doc_number

SELECT帐户,doc_date,doc_number1作为TABLE_1中的doc_number
UNION
SELECT帐户,doc_date,doc_number2作为FROM TABLE2中的doc_number

GROUP BY帐户,doc_date;

亦是此间程序员
6楼-- · 2020-08-26 16:42

您好,弗洛里安,

谢谢您的回复...这可以为我提供解决方案。 但我不应该阅读max(DOC_NUMBER)

是我的错。 我没有很好地解释它……实际上,两个表中的" DOC_NUMBER"调用方式都不相同...在表1中,它调用" DOC_NUMBER1",在表2中调用" DOC_NUMBER2" ...我需要获取 最后DOC_DATE(或最大DOC_DATE)的DOC_NUMBER

这是我真正的问题...所以如果我也使用union,因为我有两个不同的字段,则无法将它们合并在一起...

我认为我唯一的解决方案是在"分区上"上使用" Row_number()",但是在HANA中此命令的格式存在问题...

您还有其他解决方案吗?

非常感谢

一周热门 更多>