2010-05-25 110 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輸出。