我发现这有点不可思议,但我知道SQL,但我从来没有在我的职业生涯写这样的查询。
我的要求是这样的:
我有一个名为PSPROJECTITEM表,其中有这些列:
PROJECTNAME OBJECTTYPE OBJECTID1 OBJECTVALUE1 OBJECTID2 OBJECTVALUE2 OBJECTID3 OBJECTVALUE3 OBJECTID4 OBJECTVALUE4
我需要写一个具有获取子行或父PROJECTNAME,我将在查询中传递的孩子PROJECTNAME查询。
SELECT PROJECTNAME AS PARENTPROJECT, COUNT(*) AS PARENTOBJECTCOUNT FROM PSPROJECTITEM where PROJECTNAME = 'AAAA_JOB_KJ'
我的目标是找到我在这里过去了,也该项目的子项目,以获得其他值,我认为这是行数的总数的计数,如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
请注意,子对象的数量可以比父项目更多。
另外,还要注意有两个样的项目,一个是仁科交付和其他人的自定义项目。 我觉得一般的查询将能够处理这个问题。
请让,我知道,如果需要任何其他修改,因为我知道,这是非常复杂的,而且,这需要编辑的一点,我尝试过,但对如何做到这一点也找不到,我是最适合这个遗憾
在使用数据库是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。
此外,需要找到在这些表中的类似的对象,并显示有指望。
我认为,无论是内连接或交叉连接会做,显示计数。