这一句怎么用sqlserver表达
时间: 2024-10-14 14:07:58 浏览: 12
如果你想要使用SQL Server来查询2022年9月1日至2022年9月15日每天在院的有多少人,可以参考以下SQL语句:
```sql
DECLARE @StartDate DATE = '20220901',
@EndDate DATE = '20220915';
WITH CTE_InHospital AS (
SELECT
in_date,
stay_id
FROM
hospital_stays
WHERE
in_date <= @EndDate AND
(COALESCE(out_date, GETDATE()) >= @EndDate OR out_date IS NULL) -- 使用 COALESCE 和 GETDATE() 考虑可能的NULL值
)
SELECT
DATEPART(year, in_date) + '-' + RIGHT('0' + MONTH(in_date), 2) + '-' + RIGHT('0' + DAY(in_date), 2) AS in_day,
COUNT(DISTINCT stay_id) AS daily_inpatients
FROM
CTE_InHospital
GROUP BY
in_day;
```
这里使用了窗口函数`CTE`(Common Table Expression)和`COALESCE`函数处理可能出现的`NULL`出院日期情况。`GETDATE()`返回当前日期,用于检查如果没有提供出院日期。
阅读全文