Sql 根据关系类型获取最大数量

Sql 根据关系类型获取最大数量,sql,tsql,Sql,Tsql,我有一个疑问: SELECT MAX([D].[DesignKey]) AS [DesignKey] FROM [Project] AS [P] INNER JOIN [DesignGroup] AS [DG] ON [P].[ProjectKey] = [DG].[ProjectKey] INNER JOIN [Design]

我有一个疑问:

 SELECT
                   MAX([D].[DesignKey]) AS [DesignKey]
                   FROM [Project] AS [P]
                       INNER JOIN [DesignGroup] AS [DG] ON [P].[ProjectKey] = [DG].[ProjectKey]
                       INNER JOIN [Design] AS [D] ON [DG].[DesignGroupId] = [D].[DesignGroupId]
                   GROUP BY
                          [P].[ProjectKey]
                        , [D].[Name]
                        ORDER BY DesignKey
我的关系是:一个项目可以有多个
设计组
,一个
设计
可以有多个
设计组
,但一个设计不能有多个项目


我想做的是选择每个
DesignGroup
的最大设计键编号,我如何才能做到这一点?在我的查询中,它返回所有的设计键,而不关心它是否是每个设计组的最后一个。关于

在分组依据和选择上使用DesignGroupId

SELECT
                  DesignGroupId, MAX([D].[DesignKey]) AS [DesignKey]
                   FROM [Project] AS [P]
                       INNER JOIN [DesignGroup] AS [DG] ON [P].[ProjectKey] = [DG].[ProjectKey]
                       INNER JOIN [Design] AS [D] ON [DG].[DesignGroupId] = [D].[DesignGroupId]
                   GROUP BY
                          DesignGroupId
                       ORDER BY DesignKey

这应该满足您的要求:

SELECT [DG].[DesignGroupId], MAX([D].[DesignKey]) AS [DesignKey]
FROM [DesignGroup] [DG] JOIN
     [Design] [D]
     ON [DG].[DesignGroupId] = [D].[DesignGroupId]
GROUP BY [DG].[DesignGroupId];
请注意,回答您的问题不需要
项目