2016-03-05 144 views
1

我已经创建了表,其中将会有3个状态输入,解决,未解决和OnHold。我已经创建了以下查询从这我想创建条形图应该显示3条智能状态日期吧。内部在单个表中加入mysql

select a.date, a.Solved,b.Unsolved, c.OnHold 
from (select count(prob_stat) as Solved, date from delivery 
where prob_stat='Solved' group by date) a 
inner join (select count(prob_stat) as Unsolved, date from delivery 
where prob_stat='Unsolved' group by date) b on a.date=b.date 
inner join (select count(prob_stat) as OnHold, date from delivery 
where prob_stat='OnHold' group by date) c on a.date=c.date 

但它不起作用,我只能看到1条记录。任何人都可以帮忙吗?

Pravin

+1

采样日期和预期输出将需要真正帮助 – zzevannn

+0

我要找输出如下: 日期|已解决|未解决| OnHold 2016-02-20 | 1 | 2 | 0 2016-02-21 | 2 | 1 | 1 –

+0

我在找这样的输出 日期|已解决|未解决| OnHold 2016-2-15 | 2 | 1 | 1 2016-2-16 | 2 | 1 | 0 –

回答

0

试试这个。

使用CASE表达。

查询

select `date`, 
sum(case prob_stat when 'Solved' then 1 end) as Solved, 
sum(case prob_stat when 'Unsolved' then 1 end) as Unsolved, 
sum(case prob_stat when 'OnHold' then 1 end) as OnHold 
from delivery 
group by `date`; 
+0

它的工作...非常感谢你.... –

0

你可以尝试像... 那做工精细

SELECT 
    date, 
    COUNT(CASE prob_stat WHEN 'Solved' THEN 1 END) AS Solved, 
    COUNT(CASE prob_stat WHEN 'Unsolved' THEN 1 END) as Unsolved, 
    COUNT(CASE prob_stat WHEN 'OnH' THEN 1 END) AS OnHold 
FROM delivery 
GROUP BY date;