내가 원하는 것 같아서 대신 =
구조를 사용하도록 문제가 변경되었습니다.
그러나 시작 시간과 종료 시간을 실제로 비교하지는 않습니다. 당신은
...
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'
...
편집 내가 지금 조금 더 문제를 이해 생각 사용자 정의 필드 식별자 (10100 및 10101) 일치가 아니라 사용자 정의 필드의 값이 일치하는지 ... 확인하고 있습니다. 어쩌면 2JIRA
API를 정말 테이블 키에 대한보다 구체적인 참조를 필요로하는 경우, 다음
SELECT
*
FROM
ISSUES i
INNER JOIN ISSUECUSTOMFIELDVALUES icv
ON i.ID = icv.ISSUEID
AND icv.CUSTOMFIELDID = 10100
INNER JOIN ISSUECUSTOMFIELDVALUES icv2
ON i.ID = icv2.ISSUEID
AND icv2.CUSTOMFIELDID = 10101
WHERE
i.JQL= 'project=project1'
AND EXISTS (
SELECT ID FROM ISSUECUSTOMFIELDVALUES icv3
WHERE
icv3.ISSUEID <> i.ID
AND icv3.CUSTOMFIELDID IN (10100, 10101)
AND icv3.VALUE >= icv.VALUE
AND icv3.VALUE <= icv2.VALUE
)
편집 : - (마침 시작) 다음은 당신에게 중복되는 시간에 또 다른 문제가 존재하는 모든 문제를 줄 것이다 3 나는이 문제를 해결할 것인지 확실하지 않다
SELECT
*
FROM
ISSUES i
INNER JOIN ISSUECUSTOMFIELDVALUES icv
ON i.ID = icv.ISSUEID
AND icv.CUSTOMFIELDID = 10100
AND i.JQL = 'project=project1'
INNER JOIN ISSUECUSTOMFIELDVALUES icv2
ON i.ID = icv2.ISSUEID
AND icv2.CUSTOMFIELDID = 10101
AND i.JQL = 'project=project1'
WHERE
i.JQL= 'project=project1'
AND EXISTS (
SELECT ID FROM ISSUECUSTOMFIELDVALUES icv3
WHERE
icv3.ISSUEID <> i.ID
AND icv3.CUSTOMFIELDID IN (10100, 10101)
AND icv3.VALUE >= icv.VALUE
AND icv3.VALUE <= icv2.VALUE
)
편집하지만 난을 제거했다 : - (단지 논리적 무엇을보고 여기에 내가 JIRA에 액세스 할 수없는) 다음과 같은 작동합니다 내부 조인을 위해 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'
값 일치는 INNER JOIN 문에서 수행됩니다. '='를 'in'로 변경하면 JIRA API에서 오류가 발생합니다. 엄격한 가치가 있어야합니다. –
맞아요. 그래서 겹치는 사용자 정의 필드 (StartTime : 10100 및 FinishTime : 10101)가있는 문제를 원하십니까? 예 : Issue1 (시작 13:00, 완료 15:00), Issue2 (시작 : 12:00, 완료 14:00)? –
두 번째 시도에서, JIRA가 여전히'IN' 구조체를 사용하는 것에 대해 불평하는 경우 스크립트의 해당 부분을'(icv3.CUSTOMFIELDID = 10100 또는 icv3.CUSTOMFIELDID = 10101) AND ... '로 변경하십시오. –