我觉得这有点奇怪,虽然我知道 SQL,但我在我的职业生涯中从来没有写过这样的查询。
我的要求是这样的:
我有一个名为 PSPROJECTITEM 的表,其中包含以下列:
PROJECTNAME OBJECTTYPE OBJECTID1 OBJECTVALUE1 OBJECTID2 OBJECTVALUE2 OBJECTID3 OBJECTVALUE3 OBJECTID4 OBJECTVALUE4
我需要编写一个查询,它必须获取父项目名称的子行或子项目名称,我将在查询中传递它。
SELECT PROJECTNAME AS PARENTPROJECT, COUNT(*) AS PARENTOBJECTCOUNT FROM PSPROJECTITEM where PROJECTNAME = 'AAAA_JOB_KJ'
我的目标是找到我在这里通过的这个 PROJECT 的子项目,以及获取其他值的计数,我认为这是行数的总数,因为 AAAA_JOB_KJ 在表中的总数为 199 .
我想获取子项目,计数,以及重复计数的数量,即有多少父对象和子对象相似,我的意思是,父子对象之间相似的对象数量。希望这现在很清楚。
这是示例数据:
Parent Project Name Parent Project Count Child Project Child Count Similar Object Count
AAAA_JOB_KJ 199 AZ_AUTOFILL_SP1 11 3
AAAA_JOB_KJ 199 AZ_CSRIDHAR_0518 3 1
AAAA_JOB_KJ 199 AZ_DUP_TERM_FACT 2 1
AAAA_JOB_KJ 199 AZ_E000316038_HCM_789 2 1
AAAA_JOB_KJ 199 AZ_E000368318_PROJ 3 2
AAAA_JOB_KJ 199 AZ_HCM_1104_SPD_1028 7 1
AAAA_JOB_KJ 199 AZ_HCM_889_SPD_871 11 1
AAAA_JOB_KJ 199 AZ_JOB_CHANGE 5 1
AAAA_JOB_KJ 199 AZ_MGR_TERMIN 31 1
AAAA_JOB_KJ 199 AZ_PAYROLL_VALIDATIONS 19 4
AAAA_JOB_KJ 199 AZ_Q4AUTOCHG 22 2
AAAA_JOB_KJ 199 AZ_Q4AUTOCHG_ENHCMT 8 2
AAAA_JOB_KJ 199 AZ_Q4_BCKUP 225 130
请注意,子对象的数量可以多于父项目。
另外,请注意,有两种项目,一种是 peoplesoft 交付的,另一种是自定义项目。我认为一般查询将能够处理这个问题。
如果需要任何其他修改,请告诉我,因为我知道这非常复杂,而且,这需要一点点编辑,我试过了,但找不到如何做到这一点,我很抱歉
使用的数据库是 ORACLE。
所有人都在同一张桌子上。
版主编辑添加:
父项目位于PSPROJECTITEM
. 假设我有查询,
SELECT PROJECTNAME AS PARENTPROJECT, COUNT(*) AS PARENTOBJECTCOUNT
FROM PSPROJECTITEM where PROJECTNAME = 'AAAA_JOB_KJ'
我需要一个查询来获取我在 where 子句中传递的该项目的子项目、子项目的计数以及重复计数。
** 添加 **
下面的查询能够完成大部分预期的工作。
现在,需要进行一些修改:
我的示例数据是这样的:
父项目名称 父项目计数 子项目 子项目 类似对象计数 AAAA_JOB_KJ 199 AZ_AUTOFILL_SP1 11 3
但查询输出是这样的:
父项目名称 父项目计数 子项目 子计数 相似对象计数 AAAA_JOB_KJ 5 AZ_AUTOFILL_SP1 5
5 是错误的,199 是期望的,因为 AAAA_JOB_KJ 在表中的计数是 199,对于 AZ_AUTOFILL_SP1 也是如此。
此外,需要在这些表中找到相似的对象,并显示那里的数量。
我认为内部联接或交叉联接都可以显示计数。