在Microsoft Access 2013中创建一个显示当前状态的查询

时间:2015-06-02 05:56:05

标签: sql database ms-access-2013

我正在尝试在Access 2013中创建一个显示当前状态和日期的查询,同时忽略旧的状态记录。

我有三张桌子:

客户      id(pk)      持续      第一

状态      id(pk)      状态      描述

状态,客户      id(pk)      顾客ID      STATUS_ID      status_date      笔记

如果我创建一个包含last,first,customer_id和status_date字段的查询,它在最后一个status_date中被分组,那么它的效果很好。但我无法根据status_date查询列出当前状态的查询。无论我如何添加状态,它都会中断分组并显示具有多个状态的同一个人。

例如:

Last        First        Customer_id         Status_date
John         Smith              1               05/30/2015
Mary         Johnson            2               05/26/2015



Last        First        Customer_id         Status_date       Status
John         Smith              1               05/25/2015       In Process
John         Smith              1               05/30/2015       Complete
Mary         Johnson            2               05/26/2015       Complete

我想要第二个查询,但没有重复的记录。

谢谢。

1 个答案:

答案 0 :(得分:0)

我上传了我的解决方案:http://sqlfiddle.com/#!6/ef4b9/1/0

SELECT c.first,c.last,c.id as customer_id,sc.status_date,s.name
FROM customer c 
left join customer_status sc on sc.customer_id=c.id
left join status s on s.id=sc.status_id
where sc.id=(SELECT MAX(id) from 
             customer_status WHERE customer_id=sc.customer_id)

评论:我在customer_Status上取了最后一个id,而不是最后一个日期,因为如果在同一日期有多个状态更新,我们想要最后插入的状态。 这是sql server 2014语法在访问时应该是相同的......