2016-04-13 7 views
0

ich diese wirklich lange Abfrage haben und was sie tut, ist Rückkehr XML und ich möchte gehen zu den Knoten:SQL FOR XML-Formatierung Ausgabe

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

Derzeit jetzt gibt es

root 
    KeyValue 
    Key 
    Value 
    Key 
    Value 
    /KeyValue 
/root 

Wie kann ich das beheben? Ich habe versucht, einen weiteren SELECT an der Spitze hinzuzufügen, aber das hat nichts getan.

Hier ist meine Frage:

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') 

Jede Hilfe sehr geschätzt werden würde. Vielen Dank im Voraus.

+0

Ich war nicht bewusst, dass es möglich ist, XML zu erstellen. Seltsam :-) –

Antwort

0

konnte ich dieses Problem beheben die folgenden am Boden, indem Sie: aus einer SQL-Anweisung

FOR XML PATH('KeyValue') 
    ,Type 
    )FOR XML PATH(''), ROOT('Root')