MSACCESS 2007 SQL复杂查询
我有以下表中的列和值...MSACCESS 2007 SQL复杂查询
ColA, ColB, ColC
b, 90, 1
p, 95, 5
p, 100, 6
p, 99, 6
p, 98, 6
b, 94, 5
b, 93, 1
b, 92, 3
o, 89, 3
b, 88, 4
我需要以下结果集:
ColA, ColB, ColC
b, 90, 1
b, 93, 1
p, 95, 5
o, 89, 3
从本质上讲,这是COLC其中最低值ColA是一样的。所以b的最低值是1,它出现在两行中。所有p的最小值是5,所有o的最小值是3. ColB是在另一个表上加入的值。所以我确实需要一个查询来加入ColB上的另一个表。
谢谢。
尝试这个
select mainTable.* from abcTable as mainTable inner join
(select t.colA,min(t.colC) as minColC from abcTable as t group by t.ColA) as minimumTable
on mainTable.colA=minimumTable.ColA and mainTable.colC=minimumTable.minColC
你在这里!
with r1 as
(select *
,rank() over (partition by ColA order by ColC) fix
from aba
)
select * from r1 where fix = 1
确定的MS Access suports'RANK()'? – lad2025
我不认为MSAccess 2007支持这一点。 – user2184214
人们仍然使用MS Access?我认为这是MS SQL Server。抱歉! – natec
这样做!谢谢开斋节! – user2184214
Eid - 我不再需要第二个'b'结果行。我只想要ColA分组的行,ColC值最低;如果有领带,那么最高的ColB决定领带。如果他们绑在ColC和ColB上,那么只返回一行,我不在乎哪个。你能做到吗? – user2184214
从abcTable中选择不同的mainTable.colA,max(mainTable.ColB),mainTable.ColC作为mainTable内部加入 (从tcColA中选择tCcolA,min(t.colC)作为minColC作为t group by t.ColA)作为minimumTable mainTable.colA上的 = minimumTable.ColA和mainTable.colC = minimumTable.minColC group by mainTable.colA,mainTable.ColC –