设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 如何按条件统计二个日期间的天数

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-7 12:47:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何统计二个日期间的天数?需要统计的字段[周次],条件:1、[采购日期]在"开始日期"和"结束日期"范围内;2、[日期段]相同;3、[是否加班]为false;4、如果"开始日期"和"结束日期"都为空,那么需要统计[采购日期]所有日期范围。

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-4-7 13:29:15 | 只看该作者
使用datediff可以统计两个日期间的天数
3#
发表于 2009-4-7 13:32:50 | 只看该作者
以下供参考吧,这是我的一个实例,好象跟你所讲的差不多,做适当修改即可。
  1. SELECT b.*
  2. FROM [select a.*,datediff("d",a.当前月日,a.合同月日) as 差额天数 from
  3. (
  4. SELECT 合同资料.compact_id, 合同资料.begin_date, 合同资料.number, 合同资料.customer, 合同资料.type, 合同资料.duty, 合同资料.term, 合同资料.close_date, 合同资料.money, 合同资料.state, 合同资料.remark, (Year(Now()) & "-" & Month([begin_date]) & "-" & Day([begin_date])) AS 合同月日, (Year(Now()) & "-" & Month(Now()) & "-" & Day(Now())) AS 当前月日
  5. FROM 合同资料
  6. WHERE (((合同资料.state)=True))) as a]. AS b
  7. WHERE b.差额天数>0 and b.差额天数<=30;
复制代码
4#
 楼主| 发表于 2009-4-7 13:46:27 | 只看该作者
以下供参考吧,这是我的一个实例,好象跟你所讲的差不多,做适当修改即可。SELECT b.*
FROM [select a.*,datediff("d",a.当前月日,a.合同月日) as 差额天数 from
(
SELECT 合同资料.compact_id, 合同资料.begin_d ...
jackysu78 发表于 2009-4-7 13:32


能帮我改成我需要的吗?
5#
 楼主| 发表于 2009-4-9 07:40:29 | 只看该作者
可能没有表述清楚,其实就是统计符合条件的不重复的周次的个数。

目的是为了统计上班的天数,用于计算每份午餐的平均价格。
采购的总金额/(天数*人数)=元/天/人
6#
 楼主| 发表于 2009-4-13 13:27:05 | 只看该作者
顶起来
7#
发表于 2009-4-13 16:45:10 | 只看该作者
怎么说呢,总感觉你设计的周次和日期段不太科学,其实要达到你的统计要求不难,建议你重新设计一下表
8#
发表于 2009-4-13 16:54:41 | 只看该作者
你按如下创建一个查询,看是否你所需要的,这样可以统计出相同日期段的相同周次的采购金额,当然也满足你的查询条件。
  1. select count(b.周次) as 次数,b.日期段,sum(b.金额小计) as 金额 from
  2. (
  3. SELECT a.周次, a.日期段, Sum(a.采购金额) AS 金额小计
  4. FROM (SELECT 采购.周次, 采购.采购日期, (iif(nz(采购.实际数量)="","0",采购.实际数量)*iif(nz(采购.实际单价)="","0",采购.实际单价)) AS 采购金额, 采购.是否加班, 采购.日期段
  5. FROM 采购
  6. WHERE (((采购.采购日期) Between IIf(nz([Forms]![采购]![开始日期])="",#1/1/2009#,[Forms]![采购]![开始日期]) And IIf(nz([Forms]![采购]![结束日期])="",#12/31/2099#,[Forms]![采购]![结束日期])) AND ((采购.是否加班)=False))
  7. ) AS a
  8. GROUP BY a.周次, a.日期段
  9. ) as b
  10. group by b.日期段;
复制代码
9#
 楼主| 发表于 2009-4-14 07:57:02 | 只看该作者
你按如下创建一个查询,看是否你所需要的,这样可以统计出相同日期段的相同周次的采购金额,当然也满足你的查询条件。select count(b.周次) as 次数,b.日期段,sum(b.金额小计) as 金额 from
(
SELECT a.周次, a.日 ...
jackysu78 发表于 2009-4-13 16:54


谢谢!我要的就是这个效果。
10#
发表于 2009-4-14 23:15:25 | 只看该作者
学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-25 19:53 , Processed in 0.099262 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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