Office中国论坛/Access中国论坛

标题: 如何按条件统计二个日期间的天数 [打印本页]

作者: kent_73    时间: 2009-4-7 12:47
标题: 如何按条件统计二个日期间的天数
如何统计二个日期间的天数?需要统计的字段[周次],条件:1、[采购日期]在"开始日期"和"结束日期"范围内;2、[日期段]相同;3、[是否加班]为false;4、如果"开始日期"和"结束日期"都为空,那么需要统计[采购日期]所有日期范围。
[attach]37138[/attach]
作者: jackysu78    时间: 2009-4-7 13:29
使用datediff可以统计两个日期间的天数
作者: jackysu78    时间: 2009-4-7 13:32
以下供参考吧,这是我的一个实例,好象跟你所讲的差不多,做适当修改即可。
  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;
复制代码

作者: kent_73    时间: 2009-4-7 13:46
以下供参考吧,这是我的一个实例,好象跟你所讲的差不多,做适当修改即可。SELECT b.*
FROM [select a.*,datediff("d",a.当前月日,a.合同月日) as 差额天数 from
(
SELECT 合同资料.compact_id, 合同资料.begin_d ...
jackysu78 发表于 2009-4-7 13:32


能帮我改成我需要的吗?
作者: kent_73    时间: 2009-4-9 07:40
可能没有表述清楚,其实就是统计符合条件的不重复的周次的个数。

目的是为了统计上班的天数,用于计算每份午餐的平均价格。
采购的总金额/(天数*人数)=元/天/人
作者: kent_73    时间: 2009-4-13 13:27
顶起来
作者: jackysu78    时间: 2009-4-13 16:45
怎么说呢,总感觉你设计的周次和日期段不太科学,其实要达到你的统计要求不难,建议你重新设计一下表
作者: jackysu78    时间: 2009-4-13 16:54
你按如下创建一个查询,看是否你所需要的,这样可以统计出相同日期段的相同周次的采购金额,当然也满足你的查询条件。
  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.日期段;
复制代码

作者: kent_73    时间: 2009-4-14 07:57
你按如下创建一个查询,看是否你所需要的,这样可以统计出相同日期段的相同周次的采购金额,当然也满足你的查询条件。select count(b.周次) as 次数,b.日期段,sum(b.金额小计) as 金额 from
(
SELECT a.周次, a.日 ...
jackysu78 发表于 2009-4-13 16:54


谢谢!我要的就是这个效果。
作者: 13555609005    时间: 2009-4-14 23:15
学习学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3