【发布时间】:2018-10-12 05:49:03
【问题描述】:
我有一组表,每个表都包含相关数据,我需要为源表中的每一行选择最近的一组记录。有数百万行,我需要有效地执行此操作,到目前为止,我无法仅返回给定数字的最近日期。
例如,给定数字的当前结果是:
CampaignName MobileNumber Date
Campaign A 12345678910 12/02/2018 14:50:30
Campaign B 12345678910 05/02/2018 11:35:22
只应返回广告系列 A 的行。
我实际上是在尝试获取为每个手机号码发送的最新消息以及该消息的活动数据(每条消息都是活动的一部分。
SELECT CC.campaignname,
Co.mobilenumber,
Max(M.msgcreatetime)
FROM [Database].[dbo].[messages] M WITH(nolock)
INNER JOIN dbo.messagecontact MC WITH(nolock)
ON M.msgid = MC.messageid
INNER JOIN dbo.campaigncontact Co WITH(nolock)
ON Co.contactid = MC.contactid
INNER JOIN dbo.campaign CC WITH(nolock)
ON M.campaignid = CC.campaignid
GROUP BY CC.campaignname,
Co.mobilenumber
【问题讨论】:
-
您需要提供更多信息。该查询有什么问题?挣扎是什么意思?最后,你不应该使用 `with (nolock) brentozar.com/archive/2015/03/…
-
没有表名为源。
-
好的,谢谢我已经更新了@Mazhar 的帖子
标签: tsql