2014-12-13 157 views
1

我想检索一年中所有最大的疾病使用情况。我有一个名为view_accepted_appoinments的表,它有列疾病和日期。我想这个查询,但它不工作Mysqli查询不起作用

select distinct doc_specilization as disease, 
DATE_FORMAT(date,'%Y') as year, 
count(Distinct doc_specilization) as count 
from view_accepted_appoinments 
group by year 
order by year desc; 

查询返回这里面给出错误的病名

+--------------+------+-------+ 
| disease  | YEAR | count | 
+--------------+------+-------+ 
| Primary Care | 2014 |  8 | 
| Primary Care | 2013 |  1 | 
+--------------+------+-------+ 
+0

在这个意义上不工作? ?你可以更清楚地了解你所得到的错误信息,或者显示的数据与你所期望的输出不同,并且你也可以向我们显示表格的列 – ManojGeek 2014-12-13 17:00:20

+0

这个查询是否在执行时返回你预期的记录集通过像MySQL Workbench或phpMyAdmin这样的数据库客户端? – budhajeewa 2014-12-13 17:02:16

+0

你可以分享一些样本数据和你试图达到的结果吗? – Mureinik 2014-12-13 17:04:59

回答

0
select distinct d , spec,c from(
     select date_format(date,"%Y") as d, 
     doctor, doc_specilization as spec, 
     count(doc_specilization) as c from 
     view_accepted_appoinments 
     group by doc_specilization, d)f 
     group by d; 
0

尝试

SELECT doc_specialization AS disease, 
DATE_FORMAT(date, '%Y') AS year, 
COUNT(doc_specialization) AS count, 
FROM view_accepted_appoinments 
GROUP BY doc_specialization, year 
ORDER BY year DESC, doc_specialization ASC; 
+0

发生此错误 您的SQL语法错误;请检查与您的MySQL服务器版本相对应的手册,以便在第4行的'FROM view_accepted_appoinments GROUP BY doc_specialization,year ORDER BY D'附近使用正确的语法。 – Zeeshan 2014-12-13 17:11:55

+0

@Zeeshan:您是否可以提供转储 - 最好带有少量数据库的实际数据?所以我可以导入它并测试? – budhajeewa 2014-12-13 17:14:36

+0

我为此创建了一个逻辑表(视图)。 – Zeeshan 2014-12-13 17:19:52