SQLserver获取每个月月初人数和月末人数
时间: 2024-05-06 18:19:05 浏览: 176
求选修了课程的学生人数-SQLSERVER2000简介
可以使用以下 SQL 语句来获取每个月月初人数和月末人数:
```sql
SELECT
DATEADD(month, DATEDIFF(month, 0, [date]), 0) AS [month],
COUNT(CASE WHEN DAY([date]) = 1 THEN [id] END) AS [beginning],
COUNT(CASE WHEN DAY(DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0, [date]) + 1, 0))) = DAY([date]) THEN [id] END) AS [ending]
FROM [table]
GROUP BY DATEADD(month, DATEDIFF(month, 0, [date]), 0)
```
其中,`[table]` 是你要查询的表名,`[date]` 是日期字段的列名,`[id]` 是用于计算人数的字段的列名。
该 SQL 语句使用了 `DATEADD` 和 `DATEDIFF` 函数来计算月初日期,使用了 `DAY` 函数来获取日期中的日份,使用了 `COUNT` 函数和 `CASE` 表达式来计算人数。
注意,这个 SQL 语句假设每个人在每个月的某一天只会出现一次,否则可能会导致人数计算错误。
阅读全文