【问题标题】:join with sum and group by加入 sum 和 group by
【发布时间】:2011-04-13 19:33:00
【问题描述】:

我有两张桌子。他们是一对一的关系。

任务 - ID - 名称

报告 - ID - 时间 - TaskId -FK

我想创建一个查询,该查询将按任务汇总报告时间。

我试过了,还是不行

SELECT NAME,SUM (TIME) FROM TASKS LEFT JOIN REPORT ON TASKS.ID = REPORT.TASKID                         
                GROUP BY TASKS.NAME

它的 Oracle 和使用此查询的时间列在结果中为空。

【问题讨论】:

  • 什么关系型数据库? time 的数据类型是什么?如果 SQL Server 和 time 可能会收到错误消息“操作数数据类型时间对求和运算符无效。”

标签: sql oracle join group-by


【解决方案1】:
SELECT
  NAME, 
  SUM( ISNULL(TIME, 0) ) SumOfTime /* Time could be NULL! */
FROM
  TASKS 
  LEFT JOIN REPORT ON TASKS.ID = REPORT.TASKID                         
GROUP BY
  TASKS.NAME

【讨论】:

  • 不是组函数忽略空值,而不是返回空值吗?我错过了什么?
  • @boisvert 如果只是isnull(sum(time), 0) 可能会更清楚。但是,我怀疑性能上会有明显差异。
猜你喜欢
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
  • 2021-01-30
  • 2021-05-09
  • 2016-06-21
相关资源
最近更新 更多