Проблема с написанием SQL-оператора - PullRequest
0 голосов
/ 12 августа 2011

Я должен написать инструкцию SQL, которая содержит поле, содержащее два разных значения последовательно, но в том виде, в котором я его написал, он всегда возвращает ноль, поскольку он интерпретируется как имеющий два значения в одно и то же время!

Мои условия должны быть: (ci.field = 'Group' и ci.oldString = 'Triage') и (ci.field = 'assignee', а ci.newString не равно NULL)

Это значитрассчитать время между: когда проблема назначена группе с именем Triage и когда проблема назначена человеку

как я могу это исправить?

Мой оператор SQL:

select TIMEDIFF(a.created,b.created) 
from
(select g.created, g.issueid as groupid1 
    from   changegroup g
    join   changeitem ci on (ci.groupid = g.id)
    join   jiraissue ji on (ji.id = g.issueid)
    join   project p on (p.id = ji.project)
    join   priority pr on (pr.id = ji.priority)
    where  ci.field = 'Group'
    and  ci.oldString = 'Triage' 
    and  ci.field='assignee'
    and ci.newString is not NULL
    and  p.pname = 'Test'
    and pr.pname='P1'
    and  ji.created between '2011-08-11 14:01:00' and  '2011-08-12 14:11:00'
) a 
left join (
    select ji.created, ji.id as groupid2 
    from   jiraissue ji
    join   changegroup g on (g.issueid = ji.id)
    join   project p on (p.id = ji.project)
    where  p.pname = 'Test'
      and  ji.created between '2011-08-11 14:01:00' and '2011-08-12 14:11:00' 
) b ON (a.groupid1 = b.groupid2);

Это таблица, из которой я должен получить данные

enter image description here

1 Ответ

0 голосов
/ 12 августа 2011

См. Мой комментарий о качестве вашего вопроса, но подсказка о том, как решить эту проблему, выглядит следующим образом (при условии, что вы можете убедиться, что это не создает 1-n объединений)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...