按日期按降序为每个表选择不同的所有记录?

时间:2016-05-20 02:50:17

标签: sql sql-server asp.net-mvc sql-server-2014

我有这样的数据库模型:

Database Model

每个用户都有很多项目。每个项目都有很多版本。每个版本都有很多要求。每个要求都有很多pos(词性)。

我希望选择所有POS_NAME与需求实体中存在的所有要求不同,但基于每个项目和每个用户的最新VERSION_DATE

我应该如何在SQL Server 2014女士中查询?

1 个答案:

答案 0 :(得分:1)

由于我不知道您在结果集中究竟需要什么,我向您展示了一般方法:

SELECT DISTINCT p.POS_NAME --here put all columns you need
FROM POS p
INNER JOIN Requirement r
    ON r.ID_REQ = p.ID_REQ
INNER JOIN Version v
    ON v.ID_VERSION = r.ID_VERSION
INNER JOIN (SELECT  VERSION_NAME,
                    MAX(VERSION_DATE) as VERSION_DATE
            FROM Version) as v1
    ON v1.VERSION_NAME = v.VERSION_NAME AND v1.VERSION_DATE = v.VERSION_DATE
INNER JOIN Project pr
    ON pr.ID_PROJECT = v.ID_PROJECT
INNER JOIN User u
    ON u.ID_USER = p.ID_USER