每个匹配仅选择一条记录

时间:2010-12-04 00:05:51

标签: sql ms-access coldfusion

让我们看看能否正确解释。

我(不幸的是)使用Access。

我有一张桌子:

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

我知道这可以设置得更好,但不幸的是,这就是我所有的工作。

我如何查询这个数据库,以便它为每个匹配的ResID,Med,Time和emar集合只返回一行?所以我从这个例子中寻找的结果将是:

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    |

除了日期必须在指定范围内之外,日期无关紧要:date_mindate_max。如果它有所作为,那就是ColdFusion。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你应该写一些类似的东西:

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

在哪里说'xxxx-xx-xx'你应该写一些类似2010-11-30

的东西