2010-05-25 8 views
2

J'ai deux notifications de tables et mailmessages.AIDE avec requête sql impliquant deux tables et une date maximale

Notifications Table
- NotifyTime
- NotifyNumber
- AccountNumber

MailMessages Table
- id
- MessageSubject
- MessageNumber
- AccountNumber

Mon but est de créer un requête SQL unique pour récupérer des lignes distinctes de mailmessages OERE le numéro de compte est un nombre spécifique ET le notifynumber = numéro de messagerie ET SEULEMENT la notification la plus récente de la table de notifications où les numéros de compte correspondent dans les deux tables. J'utilise sqlexpress2008 en back-end sur une page asp.net. Cette requête doit renvoyer des messages distincts pour un compte avec uniquement la date la plus récente dans la table des notifications.

Aidez s'il vous plaît! Je vais t'acheter une bière !!!

+0

Vous pouvez obtenir une meilleure aide si vous fournissez une entrée d'échantillon (schéma, données) et la sortie désirée correspondante –

Répondre

0

Try this ...

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 

Cela limite à la donnée AccountNumber (= 1) et les sorties chaque MessageNumber associés ainsi que la date de la dernière entrée correspondante dans les notifications.