栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从Access中的表获取选择性记录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从Access中的表获取选择性记录

试试这个

SELECt * FROM final INNER JOIN(SELECt Min(DDate + DTime) AS DDateTime, Angle FROM final GROUP BY AngleUNIOn SELECt Max(DDate + DTime) AS DDateTime, Angle FROM final GROUP BY Angle) mmON final.DDate + final.DTime = mm.DDateTime AND final.Angle = mm.Angle

请注意,在测试中,我将前两列的名称分别更改为DDate和DTime,因为Date和Time是保留字。

编辑

这使其变得相当困难,尤其是在没有LEAD / LAG功能的Access中。以下应该可以工作,但是有人可能会提供更好的解决方案!

SELECt final.* FROM final INNER JOIN(SELECt MIN(DDateTime) AS MDateTime, Angle FROM(SELECt (f.DDate+ f.DTime) AS DDateTime, f.Earth_Value, f.Mars_Value, f.Earth_Col, f.Mars_Col, f.Diff, f.Angle, f.Col_Apart,IIF(ISNULL((SELECT MIN(m.DDate + m.DTime) FROM final m where f.angle <> m.angle and (f.DDate+f.DTime) < (m.DDate+m.DTime))),(SELECt MAX(DDate+DTime) FROM final),(SELECt MIN(m.DDate + m.DTime) FROM final m where f.angle <> m.angle and (f.DDate+f.DTime) < (m.DDate+m.DTime))) AS NextChangeDateTimeFROM final f order by DDate, DTime) gGROUP BY g.Angle,g.NextChangeDateTimeUNIOnSELECt MAX(DDateTime) AS MDateTime, Angle FROM(SELECt (f.DDate+ f.DTime) AS DDateTime, f.Earth_Value, f.Mars_Value, f.Earth_Col, f.Mars_Col, f.Diff, f.Angle, f.Col_Apart,IIF(ISNULL((SELECT MIN(m.DDate + m.DTime) FROM final m where f.angle <> m.angle and (f.DDate+f.DTime) < (m.DDate+m.DTime))),(SELECt MAX(DDate+DTime) FROM final),(SELECt MIN(m.DDate + m.DTime) FROM final m where f.angle <> m.angle and (f.DDate+f.DTime) < (m.DDate+m.DTime))) AS NextChangeDateTimeFROM final f order by DDate, DTime) gGROUP BY g.Angle,g.NextChangeDateTime) FLDatesON final.DDate + final.DTime = FLDates.MDateTime

编辑2

从技术上讲,MS Access中没有诸如临时表之类的东西。实际上,您只是创建一个普通表并在每次要使用它时将其内容删除。

要创建表,您需要将此表复制到“查询窗口”(SQL视图)中,然后单击“运行”:

CREATE TABLE final (    DDate       DATETIME     NOT NULL,    DTime       DATETIME     NOT NULL,    Earth_Value         DOUBLE   NOT NULL,    Mars_Value         DOUBLE   NOT NULL,    Earth_ColINTEGER     NOT NULL,    Mars_ColINTEGER     NOT NULL,    DiffINTEGER     NOT NULL);

然后在现有查询类型之前(您只需要第一行):

INSERT into finalSELECT etc.

现在,您将能够完全按原样运行我的查询。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号