2012-02-22 6 views
0

J'ai besoin de quelques conseils sur la façon d'écrire une requête dans Ms-Access qui va tirer tous les enregistrements basés sur le PublishedDate mais avec-dans la date d'expiration. Par exemple, ma table porte 3 colonnes EventTitle, PublishDate, ExpiryDate avec des valeurs Title1, 2/22/2012, 28/03/2012.Ms-Access requête SQL

Maintenant le 1er enregistrement n'apparaîtra que le 22 février 2012 jusqu'au 28 mars 2012. La requête que j'ai utilisée supprime l'enregistrement une fois que la date actuelle change du 22 février au 23 février.

J'ai essayé d'utiliser le script ci-dessous

SELECT top 1 Title, ExpiryDate 
FROM Table1 
WHERE (((PublishDate)=Date() 
Or (PublishDate)<=[ExpiryDate]) 
AND ((ExpiryDate)>=Date())) 
ORDER BY ExpiryDate ASC 
+0

S'il vous plaît nous montrer un échantillon représentatif de données bref de Table1. Ensuite, montrez-nous les résultats que vous voulez en vous basant sur ces exemples de données. – HansUp

+0

Merci Hansup, il semble que le problème semble résolu. Je fais les tests maintenant avec différents scénarios. Quoi qu'il en soit, merci encore pour votre note .. –

Répondre

0

Sons comme vous voulez ceci:

SELECT top 1 Title, ExpiryDate 
FROM Table1 
WHERE PublishDate<=Date() 
AND ExpiryDate>=Date() 
ORDER BY ExpiryDate ASC 
+0

Salut Robert, merci pour votre réponse. Étant donné que PublishDate ne sera pas toujours égal à la date actuelle, il ne renverra aucune valeur. Par exemple, PublishDate dans la table est le 22 février, mais la date actuelle est le 23 février. Dans ce cas, la requête échouera. –

+0

OK. Alors décrivez en anglais ce que vous voulez que les conditions soient. Voulez-vous que la date de publication soit inférieure à la date actuelle? –

+0

Salut Robert, après avoir fait un peu de peaufinage dans le SQL que vous avez fourni à PublishDate <= Date() ET ExpiryDate> = Date(), je crois que j'obtiens le résultat comme désiré. Merci beaucoup pour votre aide. –

Questions connexes