Redian新闻
>
新手请教:为什么这个Query不work
avatar
w*m
2
will start in 40 minutes.
avatar
h*r
3
一个select query,criteria是field1等于1,field2是group by field3里最大的。
我写了下面的query,可是总告诉我最多只能return一个record,而在我的data set里
符合标准的应该有几百个才对。我用Access2007。请高人指点。
SELECT Table.*
FROM Table
WHERE Field1 = 1
AND Table.Field2 = (SELECT max(Field2) FROM Table GROUP BY Field3)
avatar
a9
4
field2 in?

【在 h***r 的大作中提到】
: 一个select query,criteria是field1等于1,field2是group by field3里最大的。
: 我写了下面的query,可是总告诉我最多只能return一个record,而在我的data set里
: 符合标准的应该有几百个才对。我用Access2007。请高人指点。
: SELECT Table.*
: FROM Table
: WHERE Field1 = 1
: AND Table.Field2 = (SELECT max(Field2) FROM Table GROUP BY Field3)

avatar
B*L
5

try this:
SELECT Table.*
FROM Table
WHERE Field1 = 1
AND Table.Field2 = (SELECT max(Field2) FROM Table)

【在 h***r 的大作中提到】
: 一个select query,criteria是field1等于1,field2是group by field3里最大的。
: 我写了下面的query,可是总告诉我最多只能return一个record,而在我的data set里
: 符合标准的应该有几百个才对。我用Access2007。请高人指点。
: SELECT Table.*
: FROM Table
: WHERE Field1 = 1
: AND Table.Field2 = (SELECT max(Field2) FROM Table GROUP BY Field3)

avatar
B*g
6
SELECT t1.*
FROM Table t1
WHERE t1.Field1 = 1
AND t1.Field2 = (SELECT max(t2.Field2) FROM Table t2 where t2.Field3 =t1.
Field3 )
GROUP BY t1.Field3

【在 h***r 的大作中提到】
: 一个select query,criteria是field1等于1,field2是group by field3里最大的。
: 我写了下面的query,可是总告诉我最多只能return一个record,而在我的data set里
: 符合标准的应该有几百个才对。我用Access2007。请高人指点。
: SELECT Table.*
: FROM Table
: WHERE Field1 = 1
: AND Table.Field2 = (SELECT max(Field2) FROM Table GROUP BY Field3)

avatar
g*l
7
SELECT max(Field2) FROM Table GROUP BY Field3 出来时一个SET的VALUES,你是没
显示FIELDS3, 不是一个确定的数值,所以不行,因为没有FIED3显示,你的INNER QUERY
出来没有意义,这个GROUP BY肯定是要放在外面的,BEIJING好像是对的。但每个FIELD3只能有一个RECORD,还不是你想要的
avatar
g*l
8
保险起见Access里写两个QUERY吧
QUERY1: SELECT FIELD3, MAX(FIELD2) AS MAXFIELD2 FROM TABLE GROUP BY FIELD3
QUERY2: T.* FROM QUERY1 Q1, TABLE T WHERE FIELD1=1
AND Q1.MAXFIELD2=T1.FIELD2 AND Q1.FIELD3=T.FIELD3
avatar
p*d
9
BlueTigerBL 建议的
SELECT Table.*
FROM Table
WHERE Field1 = 1
AND Table.Field2 = (SELECT max(Field2) FROM Table)
应该 work 吧
avatar
g*l
10
这个返回的是最大FIELD2的一组值,LZ要的是GROUP BY FIELD3,每一个FIELD3里面最大
FIELD2的记录

【在 p*********d 的大作中提到】
: BlueTigerBL 建议的
: SELECT Table.*
: FROM Table
: WHERE Field1 = 1
: AND Table.Field2 = (SELECT max(Field2) FROM Table)
: 应该 work 吧

avatar
a9
11
难道我推荐的in也不能用?

【在 g***l 的大作中提到】
: 这个返回的是最大FIELD2的一组值,LZ要的是GROUP BY FIELD3,每一个FIELD3里面最大
: FIELD2的记录

avatar
g*l
12
不能用,INNER QUERY出来的是个集合,每个FIELD3---MAX FIELD2,OUTER QUERY没法
直接QUERY这个集合,只能是JOIN起来

【在 a9 的大作中提到】
: 难道我推荐的in也不能用?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。