帮助涉及两个表和最大日期的sql查询
问题描述:
我有两个表通知和mailmessages。帮助涉及两个表和最大日期的sql查询
通知表
- NotifyTime
- NotifyNumber
- 账户号码
MailMessages表
- ID
- messageSubject
- MessageNumber
- 账户号码
我的目标是创建一个单个sql查询从中检索不同的行mailmessages WHERE accountnumber是一个特定的数字AND notifynumber = messagenumber AND只有来自通知表的最近通知时间,其中accountnumbers在两个表中匹配。
我使用sqlexpress2008作为asp.net页面的后端。此查询应仅为来自通知表的最近日期的帐户返回不同的消息。
请帮忙!我会给你买一瓶啤酒!
答
尝试......
SELECT MM.MaxNotifyTime, Notify.MaxNotifyTime
FROM MailMessages MM
INNER JOIN (SELECT Max(NotifyTime) MaxNotifyTime, AccountNumber
FROM Notifications
GROUP BY AccountNumber) Notify ON (MM.AccountNumber=Notify.AccountNumber)
WHERE (MM.AccountNumber=1)
答
SELECT MM.MessageNumber, MAX(N.NotifyTime) MaxTime
FROM MailMessages MM
INNER JOIN Notifications N
ON MM.AccountNumber = N.AccountNumber AND MM.MessageNumber = N.NotifyNumber
WHERE MM.AccountNumber = 1
GROUP BY MM.MessageNumber
这限制到给定的账户号码(= 1)和相关联的每一个与通知最近相应条目的日期一起MessageNumber输出。
如果您提供样本输入(模式,数据)和相应的期望输出,您可能会得到更好的帮助 – 2010-05-25 21:36:29