【发布时间】:2017-07-31 19:49:13
【问题描述】:
我对 T-SQL、存储过程和 Microsoft SQL Server Management Studio 还是很陌生。
我有一个名为 HistoryDetails 的表,其中存储了过去 6 个月的通话历史记录。它有一个 DateTime 列来了解何时进行了呼叫。我正在创建一个仪表板,我想在其中创建一个每天拨打电话数量的列表。
这是我数据库中数据的简化示例:
------------------------------------------------------
| Id | DateTime | Message |
|----+-------------------------+---------------------|
| 1 | 2017-02-27 11:52:44.723 | Room 101 called you |
|----+-------------------------+---------------------|
| 2 | 2017-02-27 11:53:58.689 | Room 101 called you |
|----+-------------------------+---------------------|
| 3 | 2017-02-28 10:41:30.440 | Room 102 called you |
------------------------------------------------------
我想要的结果是天数列表和每天的调用次数(创建的行数)。 (我的数据库保留数据 6 个月,所有超过 6 个月的都被删除)
例如:
----------------------------------------
| Date | Amount of calls (rows) |
|-------------+------------------------|
| 2017-02-27 | 2 |
|-------------+------------------------|
| 2017-02-28 | 1 |
|-------------+------------------------|
| 2017-03-01 | 5 |
|-------------+------------------------|
| 2017-02-02 | 2 |
----------------------------------------
到目前为止,我能够进行的 SQL 查询只能返回一天的调用量(创建的行),这是查询:
SELECT COUNT(*)
FROM HistoryDetails
WHERE (AlarmHistoryDetails.DateTime BETWEEN DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0) AND DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 1))
这会导致:
(No column name)
22
这不是我所需要的。
需要什么查询才能得到我需要的结果?
【问题讨论】:
标签: sql sql-server tsql