【发布时间】:2016-06-07 22:26:32
【问题描述】:
这是我的第一篇文章,如果发错了,我深表歉意!
我正在使用它们各自的 ID 号连接两个具有一对多关系的表:但我只想返回连接表的最新记录,我什至不完全确定从哪里开始!
我返回一切的原始代码如下所示:
SELECT table_DATES.[date-ID], *
FROM table_CORE LEFT JOIN table_DATES ON [table_CORE].[core-ID] = table_DATES.[date-ID]
WHERE table_CORE.[core-ID] Like '*'
ORDER BY [table_CORE].[core-ID], [table_DATES].[iteration];
这会返回一组记录:显示 table_CORE 和 table_DATES 之间的每个匹配 ID:
table_CORE date-ID iteration
1 1 1
1 1 2
1 1 3
2 2 1
2 2 2
3 3 1
4 4 1
但我只需要返回“迭代”字段中最大值的日期,如下所示
table_CORE date-ID iteration Additional data
1 1 3 MoreInfo
2 2 2 MoreInfo
3 3 1 MoreInfo
4 4 1 MoreInfo
我真的不知道从哪里开始 - 显然这将是一个 some 排序的 JOIN 查询 - 但我不确定如何让子查询只返回最高迭代表 2 的 ID 字段中的每个项目?
希望这是有道理的 - 如果涉及到它,我会重新措辞!
--编辑-- 我想知道当我需要表 1 中的所有字段(在本例中为 table_CORE)以及表 2 中的所有字段(table_DATES)也加入时如何集成它?
两个表都有需要合并的附加字段。
我很确定我可以将字段添加到“SELECT”和“GROUP BY”子句中,但总共有大约 40 个字段(输入所有字段会很乏味!)
【问题讨论】:
-
感谢大家的帮助!我已经把原型的最后期限提前了(两个月)——这意味着我需要在我去度假之前把数据库的原型拿出来……那就是明天……我将离开日期分组直到我从假期回来 - 但与此同时,谢谢大家!等我回来再恢复线程!
标签: sql-server tsql