我有一张存储患者实验室测试结果的表格。可以有多个测试的结果,如白蛋白、钾、磷等。每个类别中每个患者的第一次读数存储在一个名为 #MetricFirstGroupReading 的表中。
CREATE TABLE #MetricFirstGroupReading (Patient_Key INT, Metric_Group VARCHAR(100),
Observation_Date DATE)
ALTER TABLE #MetricFirstGroupReading
ADD CONSTRAINT UQ_MetricFirst UNIQUE (Patient_Key, Metric_Group);
INSERT INTO #MetricFirstGroupReading
SELECT 1, 'Albumin', '2018-11-15' UNION
SELECT 1, 'Potassium', '2018-12-10' UNION
SELECT 2, 'Albumin', '2018-10-20' UNION
SELECT 2, 'Potassium', '2018-11-25'
现在,对于#MetricFirstGroupReading 表中的每条记录,我需要将截至当前月份的所有月末日期填充到一个新表中。以下是查询在 2018 年 12 月运行时的预期结果。
我知道如何使用 WHILE 循环来做到这一点。如何在 SQL Server 2016 中使用基于集合的 SQL 查询在没有循环的情况下执行此操作?