以后再来整理。

-- 查询一个学校的报修单数
SELECT
  s.id AS schoolId , -- 学校ID
    COUNT(i.id) as cntId,  -- 报修单数
  IFNULL(t1.nohandlecnt,0) AS nohandlecnt,
   IFNULL(t2.overcnt,0) AS overcnt,
   ROUND(overcnt * 100 /COUNT(i.id),1)  AS okRate
FROM
    `t_issue` i
LEFT JOIN (
    -- 完成报修单数
    SELECT
        s.id AS schoolId , -- 学校ID
        IFNULL(COUNT(i.id),0) as overcnt  -- 完成的报修单数
    FROM
        `t_issue` i
    INNER JOIN t_school  s ON  i.school_id = s.id
    WHERE  i.completed_on IS NOT NULL  and
         i.acknowledged_on IS NOT NULL  
    GROUP BY 
    i.school_id     
) t2 ON t2.schoolId = i.school_id
LEFT JOIN (
    -- 未处理数
    SELECT
        s.id AS schoolId , -- 学校ID
        IFNULL(COUNT(i.id),0) as nohandlecnt  -- 未处理报修单数

    FROM
        `t_issue` i
    INNER JOIN t_school  s ON  i.school_id = s.id
    WHERE 
 i.acknowledged_on IS  NULL  AND
 i.completed_on IS NULL  

    GROUP BY 
    i.school_id 
) t1 ON t1.schoolId = i.school_id
INNER JOIN t_school  s ON  i.school_id = s.id
GROUP BY 
i.school_id 

更多相关文章

  1. 简单数据的最佳服务器端数据存储方法
  2. 在单页中使用ajax和php上传多个表单数据
  3. Spark RDD算子/SparkSQL分别实现对电影数据集的简单数据分析
  4. 求VB.net2010做一个简单数据库系统具体操作(用SQL SERVER2008)
  5. Android 简单数独开发
  6. 【JavaWeb-6】HttpServletResponse的字符字节输出流、编码、文件

随机推荐

  1. Android本地化简称对应表
  2. 转贴 Android 开发之旅:又见Hello World!
  3. android GPS开发实践
  4. Android 滑动侧边栏(Sliding Menu)第一种实
  5. android的四层体系结构,基于mvc三层结构浅
  6. Android图片转换
  7. Android实现用代码简单安装和卸载APK的方
  8. Android 事件冒泡及捕获
  9. android:imeOptions指定了弹出键盘时右下
  10. Android设置一个按钮右对齐