sql 按条件查询关联的两个表

要求:"取出有三个(含)以上的帐户之个人资料"

Table Name: PERSON (个人资料)
PNO(个人编号) NAME(姓名) ADDRESS(住址) ZIP(邮递区号)
00001 John 台北市大安区 106
00002 Jack 台北县新庄市 242
00003 Jimmy 台北市信义区 110
00004 Joan 台北市信义区 110
00005 Jackie NULL NULL

Table Name: ACCOUNT (帐户资料)
PNO(个人编号) ACCNO(帐号) AMOUNT(存款金额)
00001 A00001 100,000
00001 A00002 70,000
00002 B00001 15,236
00002 B00002 18,123
00002 B00003 12,340,234
00003 A00001 42,098
00005 B00001 132,145,331
00005 E00002 23,120
00005 B00003 112
00005 E00004 98

预期结果如下:
PNO NAME ADDRESS ZIP
00002 Jack 台北县新庄市 242 3
00005 Jackie NULL NULL 4

我是这样写的:(但是提示错误)
select
A.PNO,A.NAME,A.[ADDRESS],A.ZIP,COUNT(ACCNO)
from
PERSON as A
inner join
ACCOUNT as B
on A.PNO = B.PNO
GROUP BY A.PNO,A.NAME,A.[ADDRESS].ZIP
HAVING COUNT(ACCNO) >=3

select 
A.PNO,A.NAME,A.[ADDRESS],A.ZIP,COUNT(ACCNO)  
from  
PERSON  as A
inner join 
ACCOUNT as B 
on A.PNO = B.PNO
GROUP BY A.PNO,A.NAME,A.[ADDRESS],A.ZIP--你这里错了,应该是A.ZIP
HAVING COUNT(ACCNO) >=3

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-01
COUNT(ACCNO)
聚合函数不能这样用,聚合函数查询的数据只是一行一列。而且不能用于字符串吧
相似回答