SQL:在单个查询中添加多个where子句

包.JSON

我想从Node.js运行SQL查询。我目前正在显示四个季度中每个阶段具有特定状态的项目总数。我现在想做的是显示相同的结果,但同时增加一个条件,即会计年度。

这是我四个季度的代码:

SELECT 
SUM(CurrentStatus = 'On Hold') onHold_Q,
SUM(CurrentStatus = 'In Progress') inProgress_Q,
SUM(CurrentStatus = 'Not Started') notStarted_Q,
SUM(CurrentStatus = 'Completed') completed_Q,
SUM(CurrentStatus = 'Routine Activity') routineActivity_Q,
SUM(CurrentStatus = 'Done But Not Published') doneButNotPublished_Q
FROM office.officedata
WHERE Quarter in ('Q1', 'Q2', 'Q3', 'Q4')    //here I want to add one more condition FiscalYear in ('2016-17')
GROUP BY Quarter
ORDER BY Quarter;

这将输出打印在4个不同的行中,这正是我想要的。但是,当我再添加一个条件时,它确实会执行,但是仅打印一行,因为该年剩下的三个季度中的其他项目都不存在。我想以某种方式在每个会计年度为季度打印4个不同的行。如果一年中该季度没有任何项目,则查询应在行中打印0。我怎样才能做到这一点?我的SQL不那么强壮,如果有人可以帮助我,那将很棒。

他们不是

您能以编程方式告诉我该怎么做吗?

SELECT years.FiscalYear, quarters.Quarter,
SUM(CurrentStatus = 'On Hold') onHold_Q,
SUM(CurrentStatus = 'In Progress') inProgress_Q,
SUM(CurrentStatus = 'Not Started') notStarted_Q,
SUM(CurrentStatus = 'Completed') completed_Q,
SUM(CurrentStatus = 'Routine Activity') routineActivity_Q,
SUM(CurrentStatus = 'Done But Not Published') doneButNotPublished_Q
FROM (SELECT 2016 FiscalYear UNION SELECT 2017) years
CROSS JOIN (SELECT 'Q1' Quarter UNION SELECT 'Q2' UNION SELECT 'Q3' UNION SELECT 'Q4') quarters
LEFT JOIN office.officedata ON office.FiscalYear = years.FiscalYear AND office.Quarter = quarters.Quarter 
GROUP BY years.FiscalYear, quarters.Quarter
ORDER BY years.FiscalYear, quarters.Quarter;

也许必须用COALESCE()包装SUM才能将NULL替换为零。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询中的动态WHERE子句

来自分类Dev

向NHibernate查询中添加多个ORDER BY子句会引发异常

来自分类Dev

sql where子句查询

来自分类Dev

如何在雄辩的ORM Laravel上添加多个where子句?

来自分类Dev

Gremlin:在单个gremlin查询中添加多个顶点?

来自分类Dev

如何在单个表列中添加多个控件?

来自分类Dev

如何在PHP中动态添加多个WHERE子句

来自分类Dev

SQL查询中不包含where子句

来自分类Dev

Firebase查询中的多个WHERE子句

来自分类Dev

如何在单个gremlin查询中添加多个边?

来自分类Dev

在Access 2007中的查询参数中添加多个值

来自分类Dev

在nodejs SQLite3 .each()方法中,如何添加多个参数以使用多个“ WHERE ... =?” 查询?

来自分类Dev

SQL查询多个where子句

来自分类Dev

使用python在查询中添加多个添加剂

来自分类Dev

如何在单个gremlin查询中添加多个边?

来自分类Dev

在DataTables的单个td中添加多个值?

来自分类Dev

如何在bcp命令SQL Server中添加多个查询

来自分类Dev

如何在SQL查询中添加多个AND条件?

来自分类Dev

向JOIN或WHERE子句添加多个条件时,查询不会为字段生成任何记录

来自分类Dev

如何在php中动态添加多个WHERE子句

来自分类Dev

如何在mysql查询中添加多个限制?

来自分类Dev

如何在单个查询中添加多和与以及在何处

来自分类Dev

使用多个where子句的SQL Server查询

来自分类Dev

SQL查询中的WHERE子句

来自分类Dev

无法在单个页面中添加多个 AsyncTypeahead

来自分类Dev

在sqlalchemy中批量更新where子句中添加多个条件

来自分类Dev

使用 codeigniter 通过查询在组中添加多个计数

来自分类Dev

动态更改 SQL 查询中的 where 子句

来自分类Dev

在单个别名中添加多个命令

Related 相关文章

  1. 1

    SQL查询中的动态WHERE子句

  2. 2

    向NHibernate查询中添加多个ORDER BY子句会引发异常

  3. 3

    sql where子句查询

  4. 4

    如何在雄辩的ORM Laravel上添加多个where子句?

  5. 5

    Gremlin:在单个gremlin查询中添加多个顶点?

  6. 6

    如何在单个表列中添加多个控件?

  7. 7

    如何在PHP中动态添加多个WHERE子句

  8. 8

    SQL查询中不包含where子句

  9. 9

    Firebase查询中的多个WHERE子句

  10. 10

    如何在单个gremlin查询中添加多个边?

  11. 11

    在Access 2007中的查询参数中添加多个值

  12. 12

    在nodejs SQLite3 .each()方法中,如何添加多个参数以使用多个“ WHERE ... =?” 查询?

  13. 13

    SQL查询多个where子句

  14. 14

    使用python在查询中添加多个添加剂

  15. 15

    如何在单个gremlin查询中添加多个边?

  16. 16

    在DataTables的单个td中添加多个值?

  17. 17

    如何在bcp命令SQL Server中添加多个查询

  18. 18

    如何在SQL查询中添加多个AND条件?

  19. 19

    向JOIN或WHERE子句添加多个条件时,查询不会为字段生成任何记录

  20. 20

    如何在php中动态添加多个WHERE子句

  21. 21

    如何在mysql查询中添加多个限制?

  22. 22

    如何在单个查询中添加多和与以及在何处

  23. 23

    使用多个where子句的SQL Server查询

  24. 24

    SQL查询中的WHERE子句

  25. 25

    无法在单个页面中添加多个 AsyncTypeahead

  26. 26

    在sqlalchemy中批量更新where子句中添加多个条件

  27. 27

    使用 codeigniter 通过查询在组中添加多个计数

  28. 28

    动态更改 SQL 查询中的 where 子句

  29. 29

    在单个别名中添加多个命令

热门标签

归档