当要显示的列的筛选条件不同时,怎么写sql

提示:使用case when

例:

SELECT MIN(province_id) provinceNumber, MIN(province_name) provinceName,
               COUNT(project_id)                                                       a,
               SUM(this_issue_money)                                                   b,
               SUM(CASE
                       WHEN is_not_exit = true THEN
                           1
                   END)                                                                c,
               SUM(this_issue_money)                                                   d,
               SUM(CASE WHEN is_not_exit = true AND enterprise_type_id = 1 THEN 1 END) e,
               SUM(CASE
                       WHEN
                           enterprise_type_id = 1 THEN this_issue_money END)           f,
               SUM(CASE WHEN is_not_exit = true AND enterprise_type_id = 2 THEN 1 END) g,
               SUM(CASE
                       WHEN
                           enterprise_type_id = 2 THEN this_issue_money END)           h,
               SUM(CASE WHEN is_not_exit = true AND enterprise_type_id = 2 THEN 1 END) i,
               SUM(CASE
                       WHEN
                           enterprise_type_id = 2 THEN this_issue_money END)           j
        FROM k

 

posted on 2020-09-20 10:25  我欲皆真  阅读(268)  评论(0编辑  收藏  举报

导航