0

到目前为止,我已经设法编写了一个查询来列出用户拨打的所有拨出电话及其持续时间,但我正在寻找的是,而不是所有单个呼叫的列表,而是持续时间的总和。

SELECT starttime, duration, is_answ, is_fromoutside, from_no
  FROM callhistory3
 WHERE is_answ = 't'
   AND is_fromoutside = 'f'
   AND starttime >= CURRENT_DATE
   AND from_no = '101';

持续时间的格式为 00:00:00:00.000 (Days:Hours:Minutes:Seconds.Hundredths),所以我的问题实际上是如何将其加起来并将其显示为持续时间的单个数字,而不是列表每个通话都有自己单独的持续时间?

我的最终查询如下给任何有兴趣的人:

SELECT from_no, SUM(duration), COUNT (*)
  FROM callhistory3
 WHERE is_answ = 't'
   AND is_fromoutside = 'f'
   AND starttime >= CURRENT_DATE
 GROUP BY from_no
 ORDER BY from_no;
4

1 回答 1

0

如果持续时间确实总是具有这种格式:

SELECT from_no, sum(duration)
  FROM callhistory3
  WHERE is_answ = 't'
    AND is_fromoutside = 'f'
    AND starttime >= CURRENT_DATE
    AND from_no = '101'
  GROUP BY from_no
  ORDER BY from_no;

好吧,如果您真的只是为了一个人而这样做,from_no您可以通过选择 thesum()并省略GROUP BYandORDER BY子句来简化它,但您似乎可能想要一个列表;为此,您只需更改上面的 WHERE 子句。

于 2012-05-09T17:13:04.330 回答