使用SQL访问数据源以显示每个站点的最新条目
首先,我是一个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
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)看看这个问题的答案是否能帮到你:-问题名称听起来不相关,但问题作者澄清了,听起来像是你的问题。我想他想要每个站点的最后一条记录,不仅限于一条记录。