设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1213|回复: 5
打印 上一主题 下一主题

[查询] [已OK]求助!计数的问题(一个字段内有多个姓名)

[复制链接]
跳转到指定楼层
1#
发表于 2009-8-24 09:04:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 asklove 于 2009-8-24 14:17 编辑

例如:

姓名表




值班表(值班姓名不固定,有一个或多个)
值班日期      值班姓名
2009-1-1    小 中
2009-4-1    中
2009-5-1    中 大
2009-8-1    小 中 大

想查询得到在结果:
年度    姓名   值班次数
2009  小       2
2009  中       4
2009  大       2
合计             8     

各位帮帮忙,这个查询该怎么做?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
6#
 楼主| 发表于 2009-8-24 11:18:00 | 只看该作者
6D有什么高招?
我用(FROM 值班记录 INNER JOIN 姓名表 ON 值班记录.人员名称 like "*" & 姓名表 .人员姓名 & "*")
在用 姓名表 右连这个查询,也能得到次数,只是效果没 aslxt 的好,没有值班的人员年度为空的.....
5#
发表于 2009-8-24 10:23:47 | 只看该作者
呵呵,利用笛卡尔乘积
4#
 楼主| 发表于 2009-8-24 09:55:10 | 只看该作者
非常感谢二位的回复!
学习一下
3#
发表于 2009-8-24 09:47:16 | 只看该作者
试一试:
SELECT 值班年度,姓名, Count(AA.表达式1) AS 值班天数
FROM (SELECT DISTINCT 姓名表.姓名, 值班记录.值班日期, DLookUp("值班日期","值班记录","值班姓名 like '*" & [姓名] & "*' AND 值班日期=#" & [值班日期] & "#") AS 表达式1, Format([值班日期],"YYYY") AS 值班年度
FROM 姓名表, 值班记录)AS AA
GROUP BY AA.姓名,值班年度;
2#
发表于 2009-8-24 09:40:24 | 只看该作者
本帖最后由 djt 于 2009-8-24 09:43 编辑

首先建一表caseno,字段caseno,输入数据 1,2,3。。。。100
我的作品里都一个1到1000的序数表,很多特殊功能都靠这个表来操作
(别说不想要虚拟表)
原理就是靠空格来区分到底有几个姓名
select year(值班日期),姓名,count(*) as 值班次数
from (
select *,Instr(CaseNo+1,值班姓名&' ',' ') as lngMid,mid(值班姓名,CaseNo,lngmid-CaseNo) as 姓名
from caseno as c inner join 值班记录 as z on len(z.值班姓名)>=c.CaseNo
where mid(' '&值班姓名&' ',CaseNo,1)=' '
    )
group by year(值班日期),姓名
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-19 20:40 , Processed in 0.090227 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表