Я получил эту таблицу задач, в которой есть элементы TODO. Мы извлекаем элементы задач и количество завершенных задач, ожидающих выполнения, используя отдельный запрос в одной хранимой процедуре, даже если он запрашивает из одной таблицы. Вот запрос,
select
TaskName 'Task/TaskName',
CASE IsDone WHEN '1' THEN 'True' ELSE 'False' END 'Task/IsDone',
(
SELECT COUNT(*) FROM Tasks WHERE IsDone = '1'
) 'CompletedCount'
FROM Tasks FOR XML PATH('Tasks')
здесь вывод
'<Tasks>
<Task>
<TaskName>Write a email to Mayor<TaskName>
<IsDone>True</IsDone>
<CompletedCount>2<CompletedCount>
</Task>
</Tasks>'
CompletedCount
присутствует в каждой задаче, которая является ненужной, и есть ли она в любом случае, я тоже могу запросить счет без явной записи этого SELECT COUNT(*) FROM Tasks WHERE IsDone = '1'
Как получить вывод, как показано ниже
'<Tasks>
<CompletedCount>2<CompletedCount>
<Task>
<TaskName>Write a email to Mayor<TaskName>
<IsDone>True</IsDone>
</Task>
<Task>
<TaskName>Organize Campaign for website<TaskName>
<IsDone>False</IsDone>
</Task>
</Tasks>'