我想执行下列SQL:从两个表中选择一个XML
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
现在我刚开g XML,但只有来自Table2的数据。
任何建议将受到欢迎。
什么RDBMS? [Oracle的XMLAgg](http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb13gen.htm#i1031169),[DB2的XMLAgg](http://publib.boulder.ibm.com/infocenter /db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.admin.doc%2Fdoc%2Fr0022183.htm)或[XMLGroup](http://publib.boulder.ibm.com/infocenter/db2luw /v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0050588.html),... – Aprillion 2012-03-29 08:38:50
表2中的名称,描述和位置都是?我可能会错过一些东西,但看起来你在select语句中没有来自表1的列,因为它们不会出现在XML中? – GarethD 2012-03-29 10:04:06
是的,他们是。在第3行,我选择了表1中的数据,并将它们添加到结果中。事情是,第一个脚本工作得很好,这是第一行的分解做了差异。 – toy4fun 2012-03-29 10:25:47