Jira SQL自定义字段重叠日期范围

Jira SQL自定义字段重叠日期范围,sql,jira,Sql,Jira,我的任务是从问题中获取重叠的日期,这些问题将“计划开始时间”和“计划完成时间”作为自定义字段。 我使用SQL作为JIRA驱动程序的插件。 我走了这么远: 自定义字段ID 10100用于计划开始时间 自定义字段ID 10101用于计划完成时间 SELECT * FROM ISSUES i INNER JOIN ISSUECUSTOMFIELDVALUES icv on i.ID=icv.ISSUEID INNER JOIN ISSUECUSTOMFIELDVALUES icv2 on i

我的任务是从问题中获取重叠的日期,这些问题将“计划开始时间”和“计划完成时间”作为自定义字段。 我使用SQL作为JIRA驱动程序的插件。 我走了这么远: 自定义字段ID 10100用于计划开始时间
自定义字段ID 10101用于计划完成时间

SELECT
*
FROM ISSUES i

INNER JOIN ISSUECUSTOMFIELDVALUES icv 
on i.ID=icv.ISSUEID 

INNER JOIN ISSUECUSTOMFIELDVALUES icv2 
on icv2.VALUE >= icv.VALUE

INNER JOIN ISSUECUSTOMFIELDVALUES icv3 
on icv2.VALUE <= icv3.VALUE

WHERE (icv.ISSUEID<>icv2.ISSUEID and icv2.CUSTOMFIELDID=10100 
and icv.CUSTOMFIELDID=10100) and (icv2.ISSUEID<>icv3.ISSUEID 
and icv2.CUSTOMFIELDID=10100 and icv3.CUSTOMFIELDID=10101) 
and icv.ISSUEID=icv3.ISSUEID 
and icv2.ISSUEID= (SELECT ID FROM ISSUES where jql='project=project1' LIMIT 1) //This apears to be the problem
and i.jql='project=project1'
选择
*
从问题一开始
内部联接问题CSTOMFIELDVALUES icv
on i.ID=icv.ISSUEID
内部联接问题CSTOMFIELDVALUES icv2
在icv2.VALUE>=icv.VALUE上
内部联接问题CSTOMFIELDVALUES icv3

在icv2.VALUE上,我已将问题行更改为在
结构中使用
,而不是
=
,因为我认为这是您想要的

但是,实际上根本没有比较开始或完成时间。您正在确保自定义字段标识符(10100和10101)匹配,但不确保自定义字段的值匹配

...
WHERE (
        icv.ISSUEID <> icv2.ISSUEID 
    AND icv2.CUSTOMFIELDID = 10100 
    AND icv.CUSTOMFIELDID = 10100
) 
AND (
        icv2.ISSUEID <> icv3.ISSUEID 
    AND icv2.CUSTOMFIELDID = 10100 
    AND icv3.CUSTOMFIELDID = 10101
) 
AND icv.ISSUEID = icv3.ISSUEID 
AND icv2.ISSUEID IN (
    SELECT ID FROM ISSUES WHERE jql='project=Prakse'
)
AND i.jql='project=Prakse'
...
edit3我不确定这是否能解决问题,但我删除了sub-select(exists)语句,支持内部联接

SELECT
    i.ID, i.JQL, icv.VALUE AS StartTime, icv2.VALUE AS FinishTime
FROM 
    ISSUES i 
        LEFT JOIN ISSUECUSTOMFIELDVALUES icv 
            ON i.ID = icv.ISSUEID 
                AND icv.CUSTOMFIELDID = 10100
        LEFT JOIN ISSUECUSTOMFIELDVALUES icv2 
            ON i.ID = icv2.ISSUEID
                AND icv2.CUSTOMFIELDID = 10101
        INNER JOIN ISSUECUSTOMFIELDVALUES icv3
            ON i.ID <> icv3.ISSUEID
                AND (icv3.CUSTOMFIELDID = 10100 OR icv3.CUSTOMFIELDID = 10101)   
                AND icv3.VALUE >= icv.VALUE 
                AND icv3.VALUE <= icv2.VALUE 
 WHERE 
     i.JQL= 'project=project1' 
选择
i、 ID,i.JQL,icv.VALUE作为开始时间,icv2.VALUE作为完成时间
从…起
问题一
左连接问题CSTOMFIELDVALUES icv
ON i.ID=icv.ISSUEID
和icv.CUSTOMFIELDID=10100
左连接问题CSTOMFIELDVALUES icv2
在i.ID=icv2.ISSUEID上
和icv2.CUSTOMFIELDID=10101
内部联接问题CSTOMFIELDVALUES icv3
关于i.ID icv3.ISSUEID
和(icv3.CUSTOMFIELDID=10100或icv3.CUSTOMFIELDID=10101)
和icv3.VALUE>=icv.VALUE

和icv3.VALUE我已将问题行更改为在
结构中使用
,而不是
=
,因为我认为这是您想要的

但是,实际上根本没有比较开始或完成时间。您正在确保自定义字段标识符(10100和10101)匹配,但不确保自定义字段的值匹配

...
WHERE (
        icv.ISSUEID <> icv2.ISSUEID 
    AND icv2.CUSTOMFIELDID = 10100 
    AND icv.CUSTOMFIELDID = 10100
) 
AND (
        icv2.ISSUEID <> icv3.ISSUEID 
    AND icv2.CUSTOMFIELDID = 10100 
    AND icv3.CUSTOMFIELDID = 10101
) 
AND icv.ISSUEID = icv3.ISSUEID 
AND icv2.ISSUEID IN (
    SELECT ID FROM ISSUES WHERE jql='project=Prakse'
)
AND i.jql='project=Prakse'
...
edit3我不确定这是否能解决问题,但我删除了sub-select(exists)语句,支持内部联接

SELECT
    i.ID, i.JQL, icv.VALUE AS StartTime, icv2.VALUE AS FinishTime
FROM 
    ISSUES i 
        LEFT JOIN ISSUECUSTOMFIELDVALUES icv 
            ON i.ID = icv.ISSUEID 
                AND icv.CUSTOMFIELDID = 10100
        LEFT JOIN ISSUECUSTOMFIELDVALUES icv2 
            ON i.ID = icv2.ISSUEID
                AND icv2.CUSTOMFIELDID = 10101
        INNER JOIN ISSUECUSTOMFIELDVALUES icv3
            ON i.ID <> icv3.ISSUEID
                AND (icv3.CUSTOMFIELDID = 10100 OR icv3.CUSTOMFIELDID = 10101)   
                AND icv3.VALUE >= icv.VALUE 
                AND icv3.VALUE <= icv2.VALUE 
 WHERE 
     i.JQL= 'project=project1' 
选择
i、 ID,i.JQL,icv.VALUE作为开始时间,icv2.VALUE作为完成时间
从…起
问题一
左连接问题CSTOMFIELDVALUES icv
ON i.ID=icv.ISSUEID
和icv.CUSTOMFIELDID=10100
左连接问题CSTOMFIELDVALUES icv2
在i.ID=icv2.ISSUEID上
和icv2.CUSTOMFIELDID=10101
内部联接问题CSTOMFIELDVALUES icv3
关于i.ID icv3.ISSUEID
和(icv3.CUSTOMFIELDID=10100或icv3.CUSTOMFIELDID=10101)
和icv3.VALUE>=icv.VALUE

值匹配是在内部连接语句中完成的。JIRA API在将“=”更改为“in”时引发错误。必须有一个严格的值。对。。。那么,您希望具有重叠的自定义字段(StartTime:10100和FinishTime:10101)的问题?例如:Issue1(开始13:00,结束15:00),Issue2(开始12:00,结束14:00)?在我的第二次尝试中,如果JIRA仍然抱怨在
构造中使用
,那么将脚本的该部分更改为:
(icv3.CUSTOMFIELDID=10100或icv3.CUSTOMFIELDID=10101)和…
是的,我想实现这一点。按照你的建议做了,还是一样的错误。错误:警告:没有足够的数据在表问题上使用JIRA Java API您必须至少为以下列之一提供一些数据:-ID-KEY-JQL如果您需要提供至少一列(ID,KEY,JQL),那么现有的JQL列应该足够了吗?值匹配在内部联接语句中完成。JIRA API在将“=”更改为“in”时引发错误。必须有一个严格的值。对。。。那么,您希望具有重叠的自定义字段(StartTime:10100和FinishTime:10101)的问题?例如:Issue1(开始13:00,结束15:00),Issue2(开始12:00,结束14:00)?在我的第二次尝试中,如果JIRA仍然抱怨在
构造中使用
,那么将脚本的该部分更改为:
(icv3.CUSTOMFIELDID=10100或icv3.CUSTOMFIELDID=10101)和…
是的,我想实现这一点。按照你的建议做了,还是一样的错误。错误:警告:没有足够的数据在表问题上使用JIRA Java API您必须至少为以下列之一提供一些数据:-ID-KEY-JQL如果您需要提供至少一列(ID,KEY,JQL),那么现有的JQL列应该足够了吗?