生活生产服务其它数据库案例合并分组

案例求解 ---- 分组合并 ?

案例求解,

请大家积极参与,提供最优方案.

案例要求:
根据表1的数据,计算出结果如表2的数据,要求使用HANA计算实现.

计算逻辑:
按取"工厂,生产线,产品,产品问题描述"数据,去除重复数据后,按"工厂,生产线,产品"维度分组合并产品问题描述列,以逗号分隔合成字符串列.

表1(源头数据):
工厂生产线产品条码号产品问题描述
10001001P-100A000000001产品外观问题
10001001P-100A000000002产品规格问题
10001001P-100A000000003产品密度问题
10001001P-100A000000004产品外观问题
10001001P-100A000000005产品密度问题
10001002P-100A000000006产品规格问题
10001002P-100A000000007产品密度问题
10001002P-100A000000008产品密度问题
10001002P-100A000000009产品规格问题
20002001P-100A000000010产品外观问题
20002001P-100A000000011部件A问题
20002001P-100A000000012部件B问题
20002001P-100A000000013部件B问题
20002001P-101A000000014产品密度问题
20002001P-101A000000015产品密度问题
20002001P-101A000000016部件B问题


表2(结果数据):
工厂生产线产品产品问题描述
10001001P-100产品外观问题,产品规格问题,产品密度问题
10001002P-100产品规格问题,产品密度问题
20002001P-100产品外观问题,部件A问题,部件B问题
20002001P-101产品密度问题,部件B问题



WenGE
2013-08-27
参与6

6同行回答

wengewenge软件实施顾问娃哈哈集团有限公司
特别感谢lms412和larry ,我们也是采用存储过程加游标的方式实现,之所以提出来也是看看HANA有无其他的可选方案,我也是比较期待HANA有其他的实现方式来解决这类问题.另,1),HANA建模,在计算视图中有谁使用过游标吗?我试了哈,没成功,有成功经验的可以分享哈.2),HANA建模,在计算视图中...显示全部
特别感谢lms412和larry ,

我们也是采用存储过程加游标的方式实现,之所以提出来也是看看HANA有无其他的可选方案,我也是比较期待HANA有其他的实现方式来解决这类问题.

另,
1),HANA建模,在计算视图中有谁使用过游标吗?我试了哈,没成功,有成功经验的可以分享哈.
2),HANA建模,在计算视图中,有无其他方式循环处理var_out行,或按条件更新var_out行.

谢谢!收起
生活生产服务其它 · 2013-08-28
浏览1164
larrylarry技术总监Thrive
回复 4# lms412    是的 SPS6才有的显示全部
回复 4# lms412


   是的 SPS6才有的收起
互联网服务 · 2013-08-28
浏览1165
larrylarry技术总监Thrive
错了,SPS6里function还不能处理字符数据,,,等等吧。目前的版本只能用cursor做了显示全部
错了,SPS6里function还不能处理字符数据,,,等等吧。目前的版本只能用cursor做了收起
互联网服务 · 2013-08-28
浏览1085
lms412lms412其它XTEP
回复 3# larry     HANA 的Fn是不是后面的版本才有,我们之前用的29版本压根没有Fn的功能,特别压抑。。。。显示全部
回复 3# larry


    HANA 的Fn是不是后面的版本才有,我们之前用的29版本压根没有Fn的功能,特别压抑。。。。收起
互联网服务 · 2013-08-28
浏览1079
larrylarry技术总监Thrive
提供解决思路,源码自己搞,1. Create Function  FunA(in 工厂,in 生产线, in 产品) ,功能:获取某组合下的描述字符串且合并。2. Select 工厂,生产线,产品 , FunA(工厂,生产线,产品 )  From Table group by 工厂,生产线,产品...显示全部
提供解决思路,源码自己搞,
1. Create Function  FunA(in 工厂,in 生产线, in 产品) ,功能:获取某组合下的描述字符串且合并。
2. Select 工厂,生产线,产品 , FunA(工厂,生产线,产品 )  From Table group by 工厂,生产线,产品收起
互联网服务 · 2013-08-28
浏览1088
lms412lms412其它XTEP
曾经遇到类似的需求,如果实时要求不高,或者数据量不是特别庞大,可通过HANA 的SQL语句来完成。结果如下图:采用的方式首先按前面的分组项进行GROUP BY,然后套入游标,然后遍历每一行取数据库里获取每一行对应的明细信息,再次通过游标遍历将结果组合成字符串。部分代码如下(无法直...显示全部
曾经遇到类似的需求,如果实时要求不高,或者数据量不是特别庞大,可通过HANA 的SQL语句来完成。结果如下图:



采用的方式首先按前面的分组项进行GROUP BY,然后套入游标,然后遍历每一行取数据库里获取每一行对应的明细信息,再次通过游标遍历将结果组合成字符串。

部分代码如下(无法直接执行,仅供参考):
-------------第一次循环游标
CURSOR c_cursor1 FOR
        select EBELN,VERKF
        from "DATA_ECC_DEV".EKKO
        where mandt='800'
        and LEFT(EKGRP,1)='2' and length(VERKF) in(12,13) and substring(VERKF,5,1)='2'
        and EBELN not in (select ebeln         from XTEP.DIM_SAP_PURTEXT_F ) ;

FOR r1 AS c_cursor1 DO call XTEP.POC_SAP_MM_PURTEXT_F(r1.EBELN,r1.VERKF) ;
END FOR ;


-------------第二次循环游标
FOR r2 AS c_cursor2
        (EBELN,MATNR) DO
if  (:saporder='')
saporder := r2.SAPORDERNO
;
else
saporder := :saporder||','||r2.SAPORDERNO
;收起
互联网服务 · 2013-08-27
浏览1148

提问者

wenge
软件实施顾问娃哈哈集团有限公司
擅长领域: 数据库hana内存数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2013-08-27
  • 关注会员:0 人
  • 问题浏览:3880
  • 最近回答:2013-08-28
  • X社区推广