0
我試圖得到一個列值作爲XML節點像這樣:SQL FOR XML用於路徑列值
FOR XML PATH(V_CONSTAT_ACTUAL_DATES.JOB_NUMBER), Type
,但我得到這個錯誤:
Incorrect syntax near 'V_CONSTAT_ACTUAL_DATES'. Expecting STRING or TEXT_LEN
是什麼,我想完成不可能?
以下是完整的SQL查詢:
SELECT
(
SELECT V_CONSTAT_ACTUAL_DATES.JOB_NUMBER AS 'Key',
(
SELECT
(
SELECT
(
SELECT
(
SELECT
CONVERT(date, V_CONSTAT_ACTUAL_DATES.ID120) AS 'actualFinish',
CONVERT(date, V_CONSTAT_BASE_DATES.ID120) AS 'baseLineStart'
FOR XML PATH(''), Type
)
FOR XML PATH('baseStartFinishList'), Type
)
FOR XML PATH(''), Type
),
(
SELECT CONVERT(date, V_CONSTAT_ACTUAL_DATES.DATE_TO_END) AS 'closingDate'
FOR XML PATH(''), Type
),
(
SELECT DATEDIFF(dd,V_CONSTAT_BASE_DATES.ID67,V_CONSTAT_ACTUAL_DATES.DATE_TO_END)-1 AS 'DaysOfConstruction'
FOR XML PATH(''), Type
),
(
SELECT DATEDIFF(dd,GETDATE(),V_CONSTAT_ACTUAL_DATES.DATE_TO_END) AS 'DaysToClosing'
FOR XML PATH(''), Type
),
(
SELECT
IsNull(V_CONSTAT_ACTUAL_DATES.IDNOTES2, ' ') AS 'notes'
FOR XML PATH(''), Type
),
(
SELECT DATEDIFF(dd,V_CONSTAT_BASE_DATES.ID187,V_CONSTAT_PROJ_DATES.ID187) AS 'ScheduleVariance'
FOR XML PATH(''), Type
)
FOR XML PATH('V_CONSTAT_PROJ_DATES.JOB_NUMBER'), Type
)
FOR XML PATH('KeyValue'), Type
)
FROM
((V_CONSTAT_PROJ_DATES V_CONSTAT_PROJ_DATES INNER JOIN V_CONSTAT_ACTUAL_DATES V_CONSTAT_ACTUAL_DATES
ON
V_CONSTAT_PROJ_DATES.JOB_NUMBER=V_CONSTAT_ACTUAL_DATES.JOB_NUMBER)
INNER JOIN
V_CONSTAT_BASE_DATES V_CONSTAT_BASE_DATES
ON
(V_CONSTAT_ACTUAL_DATES.JOB_NUMBER=V_CONSTAT_BASE_DATES.JOB_NUMBER) AND (V_CONSTAT_PROJ_DATES.JOB_NUMBER=V_CONSTAT_BASE_DATES.JOB_NUMBER))
INNER JOIN
V_CONSTAT_SCH_DATES V_CONSTAT_SCH_DATES
ON
((V_CONSTAT_BASE_DATES.JOB_NUMBER=V_CONSTAT_SCH_DATES.JOB_NUMBER) AND (V_CONSTAT_PROJ_DATES.JOB_NUMBER=V_CONSTAT_SCH_DATES.JOB_NUMBER))
AND (V_CONSTAT_ACTUAL_DATES.JOB_NUMBER=V_CONSTAT_SCH_DATES.JOB_NUMBER)
WHERE V_CONSTAT_ACTUAL_DATES.AREA_DESC = 'Fairgrounds Phase 5' AND V_CONSTAT_ACTUAL_DATES.DATE_TO_END>=GETDATE()
ORDER BY V_CONSTAT_ACTUAL_DATES.DATE_TO_END
FOR XML PATH(''), ROOT('Root')
我試圖讓JOB_NUMBER的列值作爲節點名
這裏是我當前XML的例子:
<KeyValue>
<Key>FA50104</Key>
<V_CONSTAT_PROJ_DATES.JOB_NUMBER>
<baseStartFinishList>
<baseLineStart>2016-06-06</baseLineStart>
</baseStartFinishList>
<closingDate>2016-05-26</closingDate>
<DaysOfConstruction>237</DaysOfConstruction>
<DaysToClosing>1</DaysToClosing>
<notes> </notes>
<ScheduleVariance>0</ScheduleVariance>
</V_CONSTAT_PROJ_DATES.JOB_NUMBER>
</KeyValue>
我想要做的是將V_CONSTAT_PROJ_DATES.JOB_NUMBER作爲關鍵值(FA50104)
後整個代碼 – TheGameiswar
FOR XML PATH( 'V_CONSTAT_ACTUAL_DATES.JOB_NUMBER'), –
類型的值內'PATH()'必須是一個**字符串文字** - 你不能指按名稱的變量或列。該字符串文字定義XML輸出中每行的最外層XML節點的**名稱**。 –