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;

ええと、本当に 1 つだけを対象としている場合は、from_noを選択sum()してGROUP BYandORDER BY節を除外するだけで単純化できますが、リストが必要になる可能性が高いようです。そのためには、上記の WHERE 句を変更するだけです。

于 2012-05-09T17:13:04.330 に答える