点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
在我的项目要求之一中,我遇到了一个具有挑战性的SQL场景。.(我仍在努力以获取最佳选择)。
因此,我想与其他人分享这个有趣的查询,以尝试了解我们可以采用的方法。 (抱歉,我无法共享DDL脚本)。 我们有以下表格分别用于"症状主数据"(YSAM_SYMPTOMS),"疾病主数据"(YSAM_SICKNESS),可告诉您疾病的所有症状和"患者测试结果"交易表(YSAM_PAT_TESTS)。
任务是为"获取具有冠状病毒所有症状的所有患者ID和患者姓名的列表"编写一个SQL查询。
解决方案应仅在单个打开的SQL中(无ABAP或AMDP逻辑。表YSAM_SYMPTOMS主表仅供参考,在Query中不需要)。 我对此有一个解决方案,但我认为它不那么优雅。 因此,请社区人士分享有关SQL查询的想法。
注意:我当前的系统是SAP_ABAP-7.50(因此也没有CTE),HANA作为数据库。
此致
Samson
(288.4 kB)
虽然我可以理解不允许从系统中提供完整的DDL和真实数据,但我不清楚您为什么不认为可以为此查询提供简化的ddl和示例数据。
我将其简化了一些。 我的系统是SAP Adaptive Server Enterprise,因此TSQL可能需要对HANA进行一些调整。 20),SYMPTOMID int)
插入YSAM_PAT_TESTS值(1001、01) 插入YSAM_PAT_TESTS值(1001、03)
插入YSAM_PAT_TESTS值(1002,01) 插入YSAM_PAT_TESTS值(1002,02)
插入YSAM_PAT_TESTS值(1003,01) 插入YSAM_PAT_TESTS值(1003,02)
插入YSAM_PAT_TESTS值(1003、06) 插入YSAM_PAT_TESTS值(1004,02)
插入YSAM_PAT_TESTS值(1004,04) 插入YSAM_PAT_TESTS值(1004,07)
插入YSAM_PAT_TESTS值(1005、06) 插入YSAM_PAT_TESTS值(1005,07)
插入YSAM_SICKNESS值(" Common Flu",01)
插入YSAM_SICKNESS值("电晕病毒",01)
插入YSAM_SICKNESS值("电晕病毒",02)
选择
p.PATIENTID
从 YSAM_PAT_TESTS p, YSAM_SICKNESS
在哪里 p.SYMPTOMID = s.SYMPTOMID
AND s.SICKNESSNAME ="电晕病毒"
组别 病人
拥有 count(*)=(
SELECT计数(*)
从YSAM_SICKNESS
WHERE SICKNESSNAME ="电晕病毒" )
嗨,布拉德,
真诚地道歉,没有考虑提供简化的DDL。 也感谢您共享DDL并抽出宝贵的时间进行响应。
您的查询肯定可以工作,但是我想避免对YSAM_SICKNESS进行两次引用(通过JOIN或子查询,如Venkat的响应)。
所以我现在暂时保持线程打开以查看其他选项。
此致
Samson。
您好,Venkat,
感谢您的回复。
我也有相同的解决方案(如下所示)。
但是以某种方式我想避免对YSAM_SICKNESS的子查询被执行两次。 因此,我现在将线程保持打开状态以查看其他选项。
此致
Samson
一周热门 更多>