SQL查询未返回最大的
我有个问题。我一直在尝试一个查询,以获取项目中使用的最大部分,但它显示了倍数。因此,对于P1,应仅显示螺母700,而P6应仅显示齿轮500 使用的查询是:SQL查询未返回最大的,sql,sql-server-2008,Sql,Sql Server 2008,我有个问题。我一直在尝试一个查询,以获取项目中使用的最大部分,但它显示了倍数。因此,对于P1,应仅显示螺母700,而P6应仅显示齿轮500 使用的查询是: SELECT Distinct t1.J#, t1.P#, t1.pname, MAX(t1.qty) AS Most_Used FROM ((SELECT J#, P.P#, P.pname, qty FROM SPJ, P WHERE (P.P# = SPJ.P#) GROUP BY P.pname, J#, P.P#, SPJ.
SELECT Distinct t1.J#, t1.P#, t1.pname, MAX(t1.qty) AS Most_Used
FROM ((SELECT J#, P.P#, P.pname, qty
FROM SPJ, P
WHERE (P.P# = SPJ.P#)
GROUP BY P.pname, J#, P.P#, SPJ.QTY)) t1
GROUP BY t1.J#, t1.P#, t1.Pname;
但我保留这个答案:
J# P# pname Most_Used
j1 p1 Nut 200
j1 p3 Screw 400
j3 p3 Screw 200
j3 p6 Cog 300
j4 p1 Nut 700
j4 p2 Bolt 100
j4 p3 Screw 500
j4 p4 Hammer 800
j4 p5 Cam 400
j4 p6 Cog 500
j5 p3 Screw 600
j5 p5 Cam 500
j6 p3 Screw 400
j7 p3 Screw 800
j7 p5 Cam 100
j7 p6 Cog 300
有什么想法吗
谢谢 您可以设置一个按J分区、按数量描述排序的行号,然后只得到行号=1
with rn as
(
select J#, P.P#, P.pname, qty,
row_number() over (partition by J# order by qty desc) as rnum
from SPJ
inner join P
on P.P# = SPJ.P#
)
SELECT J#, P#, name, qty as MostUsed
FROM rn
WHERE rnum = 1;