我在尝试获取1个字段以返回一组字段中的1个时遇到问题 例: 这就是我所能得到的(使用[Job Name]和[Door Style]列之间的内部联接,两组数据固有地存在于不同的表中)
-[Job Name], [Door Style]
-Job1 Door Style1
-Job1 Door Style2
-Job2 Door Style3
-Job2 Door Style4
我想要的是
[Job Name], [Door Style]
Job1 Door Style1
Job2 Door Style3
我尝试了多种不同的方法来实现此目的,我当前的方法试图在下面复制此方法,因为交叉应用似乎不适用于我正在使用的方法。 (SQl以某种形式的Access?软件是Cabinet Vision)
如果我没记错的话(此刻还不是软件在电脑前,它会向我抛出类似“您试图执行不包含指定聚合函数的查询”之类的错误消息
表JobS包括Job和Doors之间的内部联接,并产生这样的数据
[Job Name], [Door Style]
Job1 Door Style1
Job1 Door Style2
Job2 Door Style3
Job2 Door Style4
任何关于替代方法的输入或我在下面可能会缺少的内容将不胜感激。 谢谢!
SELECT JobS.[Job Name], JobS.[Door Name]
from JobS as JobS
inner join (
select JobS1.JobS.[Job Name], max(JobS1.JobS.[Door Name]) as OneDoor
from JobS as JobS1
group by JobS1.[Job Name]) as Q1
on Q1.[Job Name] = JobS.[Job Name] and Q1.OneDoor = JobS.[Door Name]
答案 0 :(得分:0)
您可以使用First
聚合来选择第一个值:
SELECT JobS.[Job Name], First(JobS.[Door Name])
FROM JobS as JobS
GROUP BY JobS.[Job Name]
但是,如果您根本不使用子查询,您的尝试也应该会起作用:
SELECT JobS.[Job Name], Max(JobS.[Door Name])
FROM JobS as JobS
GROUP BY JobS.[Job Name]
但是,这将根据字符串顺序返回最大值。