Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求表中相邻记录的时间的差(分组求)

lcf  发表于:2013-01-25 17:23:16  
复制

我用以下代码创建了查询:

SELECT (select min(日期) from 建筑器材出租租金结算一览表 where 日期>a.日期)—日期 AS 天数, a.工程项目名称, a.设备名称, a.日期
FROM 建筑器材出租租金结算一览表 AS a
WHERE "a.工程项目名称='"&a.工程项目名称&"'";

生成了如下效果:

查询1
工程项目名称 设备名称 日期 天数
辛庄建筑 钢管 2012-2-2 10
辛庄建筑 钢管 2012-2-12 13
辛庄建筑 钢管 2012-2-25 371
辛庄建筑 钢管 2013-3-2 16
辛庄建筑 钢管 2013-3-18 7
辛庄建筑 钢管 2013-3-25 18
山城建筑 钢管 2012-2-25 371
山城建筑 钢管 2013-4-12
为什么“山城建筑”的时间差不单独核算,达到以下效果:
查询1
工程项目名称 设备名称 日期 天数
辛庄建筑 钢管 2012-2-2 10
辛庄建筑 钢管 2012-2-12 13
辛庄建筑 钢管 2012-2-25 371
辛庄建筑 钢管 2013-3-2 16
辛庄建筑 钢管 2013-3-18 7
辛庄建筑 钢管 2013-3-25 0
山城建筑 钢管 2012-2-25 412
山城建筑 钢管 2013-4-12 0

 

Top
净光 发表于:2013-02-12 07:21:36

SELECT A.工程项目名称, A.设备名称, A.日期, (SELECT top 1  日期 FROM 建筑器材出租租金结算一览表 where 日期>A.日期 and  工程项目名称=A.工程项目名称 ORDER BY 建筑器材出租租金结算一览表.日期)-[日期] AS 表达式1 FROM 建筑器材出租租金结算一览表 AS A。

如果要求空白的地方显示0:

SELECT A.工程项目名称, A.设备名称, A.日期, iif(isnull((SELECT top 1  日期 FROM 建筑器材出租租金结算一览表 where 日期>A.日期 and  工程项目名称=A.工程项目名称 ORDER BY 建筑器材出租租金结算一览表.日期)),0,(SELECT top 1  日期 FROM 建筑器材出租租金结算一览表 where 日期>A.日期 and  工程项目名称=A.工程项目名称 ORDER BY 建筑器材出租租金结算一览表.日期)-[日期]) AS 表达式1 FROM 建筑器材出租租金结算一览表 AS A



煮江品茶 发表于:2013-02-12 18:22:02
select *,DateDiff("d",Dmax("日期","查询1","工程项目名称='" & [工程项目名称] & "' and 日期<#" & 日期 & "#"),日期) as 间隔天数 from 查询1

总记录:2篇  页次:1/1 9 1 :