我想執行下列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