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];
请注意,回答您的问题不需要项目
表