SQL FOR XML格式问题

时间:2016-04-13 14:20:51

标签: sql xml

我有这个非常长的查询,它的作用是返回XML,我想节点去:

root
  KeyValue
    Key
    Value
  /KeyValue
  KeyValue
    Key
    Value
  /KeyValue
/root

目前正在返回

root
  KeyValue
    Key
    Value
    Key
    Value
  /KeyValue
/root

我该如何解决这个问题?我尝试在顶部添加另一个SELECT但是没有做任何事情。

这是我的问题:

SELECT
(
SELECT [Job_No] AS 'Key'
    ,(
        SELECT (
        SELECT (
                SELECT ISNULL(UserDate1, ScheduleTasks.BaselineStart)
                FROM ScheduleTasks
                INNER JOIN Schedule S2 ON ScheduleTasks.ScheduleID = S2.ScheduleID
                INNER JOIN V_CONSTAT_ACTUAL_DATES ON V_CONSTAT_ACTUAL_DATES.JOB_NUMBER = S2.Job_No
                WHERE Job_No IN (
                        SELECT JOB_NUMBER
                        FROM V_CONSTAT_ACTUAL_DATES
                        WHERE AREA_DESC = 'Orchard Park'
                            AND S2.Job_No = S1.Job_No
                            AND (
                                DATE_TO_END IS NOT NULL
                                AND DATE_TO_END >= GETDATE()
                                )
                        )
                    AND (
                        LibraryTaskID <> 203
                        AND LibraryTaskID <> 204
                        AND LibraryTaskID <> 210
                        AND LibraryTaskID <> 211
                        AND LibraryTaskID <> 214
                        AND LibraryTaskID <> 215
                        AND LibraryTaskID <> 218
                        AND LibraryTaskID <> 219
                        AND LibraryTaskID <> 224
                        AND LibraryTaskID <> 227
                        AND LibraryTaskID <> 230
                        AND LibraryTaskID <> 231
                        AND LibraryTaskID <> 232
                        AND LibraryTaskID <> 233
                        AND LibraryTaskID <> 234
                        AND LibraryTaskID <> 235
                        AND LibraryTaskID <> 236
                        AND LibraryTaskID <> 237
                        AND LibraryTaskID <> 238
                        AND LibraryTaskID <> 239
                        AND LibraryTaskID <> 240
                        AND LibraryTaskID <> 242
                        AND LibraryTaskID <> 243
                        AND LibraryTaskID <> 295
                        AND LibraryTaskID <> 299
                        AND LibraryTaskID <> 303
                        AND LibraryTaskID <> 304
                        AND LibraryTaskID <> 305
                        AND LibraryTaskID <> 313
                        AND LibraryTaskID <> 314
                        AND LibraryTaskID <> 321
                        AND LibraryTaskID <> 333
                        )
                ORDER BY DATE_TO_END
                    ,SortOrder
                FOR XML PATH('string')
                    ,Type
                )
        FOR XML PATH('baseOrSchedStartList')
            ,Type
        ) FOR XML PATH('Value'), Type
        ) 
FROM ScheduleTasks
INNER JOIN Schedule S1 ON ScheduleTasks.ScheduleID = S1.ScheduleID
INNER JOIN V_CONSTAT_ACTUAL_DATES ON V_CONSTAT_ACTUAL_DATES.JOB_NUMBER = S1.Job_No
WHERE Job_No IN (
        SELECT JOB_NUMBER
        FROM V_CONSTAT_ACTUAL_DATES
        WHERE AREA_DESC = 'Orchard Park'
            AND (
                DATE_TO_END IS NOT NULL
                AND DATE_TO_END >= GETDATE()
                )
        )
    AND (
        LibraryTaskID <> 203
        AND LibraryTaskID <> 204
        AND LibraryTaskID <> 210
        AND LibraryTaskID <> 211
        AND LibraryTaskID <> 214
        AND LibraryTaskID <> 215
        AND LibraryTaskID <> 218
        AND LibraryTaskID <> 219
        AND LibraryTaskID <> 224
        AND LibraryTaskID <> 227
        AND LibraryTaskID <> 230
        AND LibraryTaskID <> 231
        AND LibraryTaskID <> 232
        AND LibraryTaskID <> 233
        AND LibraryTaskID <> 234
        AND LibraryTaskID <> 235
        AND LibraryTaskID <> 236
        AND LibraryTaskID <> 237
        AND LibraryTaskID <> 238
        AND LibraryTaskID <> 239
        AND LibraryTaskID <> 240
        AND LibraryTaskID <> 242
        AND LibraryTaskID <> 243
        AND LibraryTaskID <> 295
        AND LibraryTaskID <> 299
        AND LibraryTaskID <> 303
        AND LibraryTaskID <> 304
        AND LibraryTaskID <> 305
        AND LibraryTaskID <> 313
        AND LibraryTaskID <> 314
        AND LibraryTaskID <> 321
        AND LibraryTaskID <> 333
        )
GROUP BY [Job_No]
FOR XML PATH('')
    ,Type
    )FOR XML PATH('KeyValue'), ROOT('Root')

非常感谢任何帮助。非常感谢你的进步。

0 个答案:

没有答案
相关问题