50分问Access中查询问题,UP有分
比如有一个表是usr(代表用户),里面是usr_id,usr_name
表itl(代表证件),包含itl_id,itl_name
用户可有多个证件,请问怎样创建一个查询,把每个用户的多个证件累计统计出来?
比如有一个表是usr(代表用户),里面是usr_id,usr_name
表itl(代表证件),包含itl_id,itl_name
用户可有多个证件,请问怎样创建一个查询,把每个用户的多个证件累计统计出来?
不是很明白你的意思,可能是:
1.select count(b.*) as t,a.usr_name from a,b where a.usr_id=b.Usr_id group by a.usr_name
2.select b.itl_id,b.l_name,a.usr_name from a,b where a.usr_id=b.usr_id order by a.usr_name
欢迎交换友情连接,可以去我的why100000.com站上自助申请:
http://why100000.com/autolinks/addlink.asp
自助友情连接,申请成功后,请记住您的用户名和密码!
必须把我站的友情连接放在您的站上,并至少点击一次,
才能在我的站上看见你的连接。
点击的次数越多,在我的站上排名越靠前。
你的“表itl”必须再增加一个字段 “usr_id”,这样才能为两表建立关系。
我另外加了一个表usr_itl
这里面有usr_id,itl_id,两者建立联系。
比如说有用户test,他拥有证件一、证件二、证件三,
那么打开usr_itl表,可以看到三个重复的test的usr_id,以及对应的三个证件ID,我的想法是,怎么才能只用一行显示一个test的usr_id,而对应的三个证件ID呢?
你的意思是要在一个查询字段中显示出三个证件id,是吗?
個人覺得需要建3個表
usr(代表用户),里面是usr_id,usr_name
itl(代表证件),包含itl_id,itl_name
uit(代表用戶證件),包含usr_id,itl_id
這樣比較合乎數據庫的規範
在一个查询字段中显示出三个证件id
這種情況在程式中我都是用迴圈來處理
也期待能有更直接簡單的方法@ _@
select a.usname,c.itlname from usr a
join uit b on a.uid = b.uid
join itl c on c.itl_id = b.itl_id
where uid = "想查询的用户"
你的意思是不是这样:
Usr_ID itl_ID
001 zs001 zs002 zs003
002 zs001 zs002
如果是这样的话,Access的查询语句应该没法做到吧。使用SQL Server的store procedure应该可以做到。或者就要依靠Delphi VC++等编程语言对结果进行格式化输出才可以了。
再次发布:
对于Access,可以使用交叉表查询,示例:
表CT:
UName ID
z 1
z 2
z 3
建立查询,输入查询语句:
TRANSFORM CT.ID
SELECT CT.UName
FROM CT
GROUP BY CT.UName
PIVOT CT.ID;
显示结果:
UName 1 2 3
z 1 2 3
附注:这里直接使用ID的值作为列标题了。
上面都说了
Yiqun_Zhao(蓝帆·雨轩 Mail: yiqun_zhao@ 163.com) 高手
前一段忙,现在结帖!