MySQL多输出成一行

时间:2014-03-27 13:31:56

标签: mysql

我正在使用以下代码:

select case when a.questionid = 184 then a.text end 'Assistant Name', 
a.questionid 'Question ID', 
case when (a.questionid = 125 and a.optionid = 1309) or (a.questionid = 135 and a.optionid = 1298) then 'Yes' else '' end 'Labelling Mentioned', 
s.outletid 'Outlet ID', 
s.visittime 'Visit Time'
from answer a inner join answerset s on s.id = a.answersetid
where s.VisitTime between '2014-03-01 00:00:00' and '2014-03-31 23:59:59'
and a.questionid in (125,135,184);

产生如下输出:

Assistant Name  Question ID Option ID   Labelling Mentioned Outlet ID   Visit Time
NULL    135 203         307     03/03/2014 09:37
Alf     184 NULL        307     03/03/2014 09:37
NULL    125 107         26888   03/03/2014 09:42
NULL    125 162         26888   03/03/2014 09:42
NULL    125 1309    Yes 26888   03/03/2014 09:42
NULL    135 204         26888   03/03/2014 09:42
NULL    135 1298    Yes 26888   03/03/2014 09:42
NULL    135 167         26888   03/03/2014 09:42
NULL    135 203         26888   03/03/2014 09:42
NULL    135 204         26888   03/03/2014 09:42
NULL    135 1298    Yes 26888   03/03/2014 09:42
NULL    135 204         26888   03/03/2014 09:42
NULL    135 1298    Yes 26888   03/03/2014 09:42
NULL    135 167         26888   03/03/2014 09:42
NULL    135 129         26888   03/03/2014 09:42
NULL    135 173         26888   03/03/2014 09:42
NULL    135 204         26888   03/03/2014 09:42
NULL    135 1298    Yes 26888   03/03/2014 09:42
Steve   184 NULL        26888   03/03/2014 09:42
NULL    125 107         297     03/03/2014 09:46
NULL    125 198         297     03/03/2014 09:46

我的问题是我需要为给定的插座生成一行输出。所需的输出将是“助理名称|标记提示|出口ID |访问时间”,并给出助手的姓名,如果任何“标签提及”选项包含“是”,则为“是”。

有没有办法可以做到这一点?我尝试过一些东西(分组,COALESCE),但似乎已经碰壁了。

非常感谢!

0 个答案:

没有答案