【发布时间】:2020-08-06 01:32:58
【问题描述】:
我不知道如何创建子查询以仅选择按值 sys_loc_code 分组的最新日期。两个表 E 和 R 在 sys_sample_code 上加入。我想要 sys_loc_code 字段的不同值。我希望这是 sample_date 字段中包含最新日期的行中的数据。
我目前的代码是:
SELECT E.sample_date, E.sys_loc_code, R.sys_sample_code, R.chemical_name, R.result_value, R.detect, R.LabSampType
FROM GMP.GMP_Sample_Results AS R
INNER JOIN GMP.GMP_Sample_Events AS E ON R.sys_sample_code = E.sys_sample_code
WHERE (R.chemical_name = N'Tetrachloroethene') and E.sample_date > '2016-01-01 00:00:00.000'
ORDER BY sys_loc_code, sample_date desc
请查看图片以获得所需的结果。所需结果为黄色。
我尝试过MAX、DISTINCT、多个连接、MAX DISTINCT、GROUP BY 和无数其他方法。有人可以建议我需要的代码以获得我想要的结果。非常感谢。
【问题讨论】:
-
您尝试过 SELECT TOP 1 [fields] 吗? (将 [fields] 替换为您的字段名称)
-
您的结果不显示列名。但是假设“CTM”结果是位置,为什么你不想要“CTM12D”的一行?
-
如果您可以避免使用图像,请改为使用格式化文本,以供将来参考,或者提供 DDL/DML 语句以创建示例数据。
-
@Dale K 为 CTM12D 选择的结果不在屏幕上。 sys-loc_code 是第 3 列,sys_sample_code 是第 4 列。下次我会更好地格式化表格。会很好地说明 DDL/DML 语句到底是什么。
-
我确实尝试过,但只得到了一条记录,即所有记录的最新 sample_date。我不知道如何为每个 sys_loc_code @The Grand J 获取最新的 same_date
标签: sql-server tsql window-functions