【发布时间】:2017-09-07 06:48:57
【问题描述】:
[ExactReplica].[FilteredOpportunityProduct] 表
Opportunityid baseamount
1 500
1 500
2 600
2 700
[ExactReplica].FilteredOpportunity 表
Opportunityid name
1 ABC
2 CDF
我想取最大的baseamount;但是,当存在重复的基本金额时,我面临问题,我怎样才能只记录一条记录
我的查询
select
MaxAmount.[baseamount] ,
c.name
FROM [ExactReplica].FilteredOpportunity c
Left JOIN
(
SELECT opportunityid,
MAX((baseamount)) baseamount
FROM [ExactReplica].[FilteredOpportunityProduct]
GROUP BY opportunityid
) MaxAmount ON c.opportunityid = MaxAmount.opportunityid
inner JOIN
[ExactReplica].[FilteredOpportunityProduct] p ON MaxAmount.opportunityid = p.opportunityid
AND MaxAmount.baseamount = p.baseamount
【问题讨论】:
-
请查看此链接以了解有关如何改进问题的更多信息:spaghettidba.com/2015/04/24/…
-
您的预期结果是什么?
-
1.
inner join在你的例子中是多余的 2. 你不喜欢你的请求吗?
标签: sql-server sql-server-2012 ssms-2012