2010-12-04 23 views
1

Voyons voir si je peux expliquer cela correctement.Sélectionnez un seul enregistrement pour chaque match

Je suis (malheureusement) en train d'utiliser Access.

J'ai une table en tant que tel:

Date  | ResID | Med | time | emar | 
___________+_________+_________+_________+________| 
11/18/2010 |  72 | Aspirin | 8:00 AM | 427 | 
11/19/2010 |  72 | Aspirin | 8:00 AM | 427 | 
11/20/2010 |  72 | Aspirin | 8:00 AM | 427 | 
11/18/2010 |  72 | Aspirin | 2:00 PM | 427 | 
11/19/2010 |  72 | Aspirin | 2:00 PM | 427 | 
11/20/2010 |  72 | Aspirin | 2:00 PM | 427 | 
11/18/2010 |  73 | Aspirin | 7:00 AM | 428 | 
11/19/2010 |  73 | Aspirin | 7:00 AM | 428 | 

...etc 

Je sais cela pourrait être mis en place beaucoup mieux, mais malheureusement, c'est tout ce que j'ai avec lequel travailler.

Comment puis-je interroger cette base de données de telle sorte qu'elle renvoie une seule ligne pour chaque ensemble correspondant de ResID, Med, Time et emar? Ainsi, le résultat que je suis à la recherche de cet exemple serait:

Date  | ResID | Med | time | emar | 
___________+_________+_________+_________+________| 
11/18/2010 |  72 | Aspirin | 8:00 AM | 427 | 
11/18/2010 |  72 | Aspirin | 2:00 PM | 427 | 
11/18/2010 |  73 | Aspirin | 7:00 AM | 428 | 

La date n'a pas d'importance, sauf qu'il doit être dans une plage spécifiée: date_min-date_max. C'est dans ColdFusion si ça fait une différence.

+0

Dans le jeu de résultats que vous êtes à la recherche, quel est le but de l'affichage de la première colonne (Date) si elle ne mater pas? – JeffO

Répondre

2
SELECT MIN(Date) AS Date, ResID, Med, time, emar 
from YourTable 
WHERE Date > date_min and Date < date_max /*Might need >= and <= if inclusive*/ 
GROUP BY ResID, Med, time, emar 
0

Vous devriez écrire quelque chose comme:

Select * from TABLENAME where date>date('xxxx-xx-xx') and date<('xxxx-xx-xx') 

où il est dit 'xxxx-xxxx' vous devriez écrire quelque chose comme 2010-11-30