我正在尝试执行以下 SQL:
SELECT * FROM Table2
INNER JOIN
(SELECT * FROM Table1
INNER JOIN
(SELECT MAX(DateTime) AS LastMeasurement, MeasurementId as LastMeasurementId
FROM Table1 GROUP BY MeasurementId) as lastMeasurement
ON (Table1.MeasurementId = lastMeasurement.LastMeasurementId)
AND (Table1.DateTime = lastMeasurement.LastMeasurement)) as hLastMeasurement
ON Table2.Id = hLastMeasurement.Id
ORDER BY Table2.Id ASC
这很好用,但是因为我想获得 XML 格式的结果并且必须转换地理列,所以我将第一行更改为:
SELECT Name, Description, CAST(Location as nvarchar(MAX)) FROM Table2
并将这一行添加到末尾:
FOR XML RAW ('Object'), ROOT ('Objects'), ELEMENTS
现在我正在获取 XML,但仅包含来自 Table2 的数据。
欢迎任何建议。