Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL访问数据源以显示每个站点的最新条目_Sql_Ms Access - Fatal编程技术网

使用SQL访问数据源以显示每个站点的最新条目

使用SQL访问数据源以显示每个站点的最新条目,sql,ms-access,Sql,Ms Access,首先,我是一个SQL的完全初学者,并且有点深入浅出!我在不断学习,我犯的每一个错误或我问的每一个问题都有希望帮助我发展。。。请善待我:) 我有一个提取电表读数和其他信息的工作查询。我是在找到每个网站的最新阅读资料之后。这是目前的问题: PARAMETERS [Site Group] Text ( 255 ); SELECT Lookup.Lookup_Name AS [Group], Contacts.Name AS Site, Points.Number AS MPAN, Max(Da

首先,我是一个SQL的完全初学者,并且有点深入浅出!我在不断学习,我犯的每一个错误或我问的每一个问题都有希望帮助我发展。。。请善待我:)

我有一个提取电表读数和其他信息的工作查询。我是在找到每个网站的最新阅读资料之后。这是目前的问题:

PARAMETERS [Site Group] Text ( 255 );
SELECT 
Lookup.Lookup_Name AS [Group], 
Contacts.Name AS Site, 
Points.Number AS MPAN, 
Max(DataElectricity.Date) AS MaxDate, 
DataElectricity.M1_Present, 
DataElectricity.M2_Present, 
DataElectricity.M3_Present, 
DataElectricity.M4_Present, 
DataElectricity.M5_Present, 
DataElectricity.M6_Present, 
DataElectricity.M7_Present, 
DataElectricity.M8_Present,
DataElectricity.Direct
FROM 
DataElectricity INNER JOIN (Lookup INNER JOIN (Points INNER JOIN Contacts ON Points.Contacts_Id = Contacts.Id) ON Lookup.Lookup_Id = Contacts.Group_1) ON DataElectricity.Point_Id = Points.Id
WHERE
((DataElectricity.Direct)='D')
GROUP BY 
Lookup.Lookup_Name, Contacts.Name, Points.Number, DataElectricity.M1_Present, DataElectricity.M2_Present, DataElectricity.M3_Present, DataElectricity.M4_Present, DataElectricity.M5_Present, DataElectricity.M6_Present, DataElectricity.M7_Present, DataElectricity.M8_Present, DataElectricity.Direct
ORDER BY 
Lookup.Lookup_Name, Contacts.Name, Max(DataElectricity.Date) DESC;
然而,这将返回一个站点的所有读数,而不仅仅是最近的。。。我相信这很简单,但我想不出来


我们非常感谢您的建议和指导:)

您不能只使用top 1获得第一个结果吗

SELECT top 1 ... 

我使用了caspian的建议,选择了前1名,进一步完善了代码。。。但我正在努力进一步完善它,并产生我所需要的结果

    PARAMETERS [Site Group] Text ( 255 );
    SELECT 
    Lookup.Lookup_Name, 
    Contacts.Name AS Site, 
    Points.Number AS MPAN, 
    DataElectricity.M1_Present, 
    DataElectricity.M2_Present, 
    DataElectricity.M3_Present, 
    DataElectricity.M4_Present, 
    DataElectricity.M5_Present, 
    DataElectricity.M6_Present, 
    DataElectricity.M7_Present, 
    DataElectricity.M8_Present,
    DataElectricity.Direct

    FROM 
    (
    SELECT TOP 1 DataElectricity.Date AS MaxDate, 
            DataElectricity.M1_Present, 
            DataElectricity.M2_Present, 
            DataElectricity.M3_Present, 
            DataElectricity.M4_Present, 
            DataElectricity.M5_Present, 
            DataElectricity.M6_Present, 
            DataElectricity.M7_Present, 
            DataElectricity.M8_Present,
            DataElectricity.Point_id
    FROM 
    DataElectricity 
    ORDER BY MaxDate DESC
    )

    DataElectricity INNER JOIN (Lookup INNER JOIN (Points INNER JOIN Contacts ON Points.Contacts_Id = Contacts.Id) ON Lookup.Lookup_Id = Contacts.Group_1) ON DataElectricity.Point_Id = Points.Id
    WHERE 
    ((Lookup.Lookup_Name)=Lookup_Name) 
    ORDER BY 
    Lookup.Lookup_Name, Contacts.Name, MaxDate DESC;
我有一个GoogleDrive文件,其中显示了数据表的一个小示例和期望的结果,并希望有一个关于表如何连接的清晰指南

实际数据包含数百个站点组,每个站点组可能包含数百个站点

我希望我的最终用户能够从Lookup.Lookup_名称列表中选择网站组名称,并返回所有相关网站和阅读资料


。。。。我真的希望这有意义

您使用的是什么DBMS(SQL类型)?是访问权限吗,SQL Server MySQL???@DevN00B问题标题指定了它的访问权限。您需要使用LAST()返回最常用的记录。可能最后一个(Contacts.Name)作为站点,不确定它是否会起作用,因此只有一条评论关于拥有DataElectrical.Date=Max(DataElectrical.Date)看看这个问题的答案是否能帮到你:-问题名称听起来不相关,但问题作者澄清了,听起来像是你的问题。我想他想要每个站点的最后一条记录,不仅限于一条记录。