2020-08-26 15:57发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
亲爱的
我有一个要求,我们有两个表,我需要根据帐号将这两个表连接起来,
最终要求是获取最后一个DOC_DATE和相关的DOC_NUMBER作为每个帐户(2020和Doc_NUMBER 9)的最终收入
有人可以帮我实现这个目标吗?
谢谢
罪
为什么要加入联接而不是联合,并希望每个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;
我认为您先尝试尝试,否则您将无法学习。 请先尝试,如果您遇到的错误会帮助您纠正错误。
请看一下此博客。在HANA中使用SQL联接
嗨,
请参考下面的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
你好Nawanandana,
感谢您的回复和建议,实际上,我认为我对问题的描述有点简单。 我加入时没有问题... 在我的情况下,我需要使用Row_Number ..但是当我在(分区使用)之上使用Row_number()时,Hana不接受我......
以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;
您好,弗洛里安, 谢谢您的回复...这可以为我提供解决方案。 但我不应该阅读max(DOC_NUMBER)
这是我真正的问题...所以如果我也使用union,因为我有两个不同的字段,则无法将它们合并在一起...
我认为我唯一的解决方案是在"分区上"上使用" Row_number()",但是在HANA中此命令的格式存在问题...
您还有其他解决方案吗?
非常感谢
最多设置5个标签!
为什么要加入联接而不是联合,并希望每个Account和DocDate获得最大值? 诸如此类:
我认为您先尝试尝试,否则您将无法学习。 请先尝试,如果您遇到的错误会帮助您纠正错误。
请看一下此博客。在HANA中使用SQL联接
嗨,
请参考下面的SQL查询以根据您的要求获取结果。 您可以用表替换TABLE_1和TABLE_2。
你好Nawanandana,
感谢您的回复和建议,实际上,我认为我对问题的描述有点简单。 我加入时没有问题...
在我的情况下,我需要使用Row_Number ..但是当我在(分区使用)之上使用Row_number()时,Hana不接受我......
以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;
您好,弗洛里安,
是我的错。 我没有很好地解释它……实际上,两个表中的" DOC_NUMBER"调用方式都不相同...在表1中,它调用" DOC_NUMBER1",在表2中调用" DOC_NUMBER2" ...我需要获取 最后DOC_DATE(或最大DOC_DATE)的DOC_NUMBER谢谢您的回复...这可以为我提供解决方案。 但我不应该阅读max(DOC_NUMBER)
这是我真正的问题...所以如果我也使用union,因为我有两个不同的字段,则无法将它们合并在一起...
我认为我唯一的解决方案是在"分区上"上使用" Row_number()",但是在HANA中此命令的格式存在问题...
您还有其他解决方案吗?
非常感谢
一周热门 更多>