2010-05-25 92 views
2

我有两个表通知和mailmessages。帮助涉及两个表和最大日期的sql查询

通知表
- NotifyTime
- NotifyNumber
- 账户号码

MailMessages表
- ID
- messageSubject
- MessageNumber
- 账户号码

我的目标是创建一个单个sql查询从中检索不同的行mailmessages WHERE accountnumber是一个特定的数字AND notifynumber = messagenumber AND只有来自通知表的最近通知时间,其中accountnumbers在两个表中匹配。

我使用sqlexpress2008作为asp.net页面的后端。此查询应仅为来自通知表的最近日期的帐户返回不同的消息。

请帮忙!我会给你买一瓶啤酒!

+0

如果您提供样本输入(模式,数据)和相应的期望输出,您可能会得到更好的帮助 – 2010-05-25 21:36:29

回答

0

尝试......

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) 
0
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输出。