ここにいくつかのサンプルレコードがあります
ID(UniqueIdentifier) UserId title description version parentid
8362AB94-946F-4092-97C2-ABD957CC2E20 3 title desc 0 0
C4E3FCC1-49B5-4310-931F-B8EE48B3F38E 3 title2 desc2 0 1 8362AB94-946F-4092-97C2-ABD957CC2E20
C622113B-C6E6-4ED1-B727-E4F864643CD2 3 title3 desc3 0 2 8362AB94-946F-4092-97C2-ABD957CC2E20
レコードは、テキスト データの階層的な編集を表します。1
たとえば、ParentBoard の編集を保存すると、新しいエントリが作成され、バージョン番号が増分2
されます (これはすべてアプリケーションで発生します)。ここでの関心のある列は
ID - Unique Identifier
ParentId - NVARCHAR(50)
次のようにxmlを構築しようとしています
<Edits>
<Id>314BA459-3749-4BC1-8AA4-E72B882539F5</Id>
<Title>Parent Title</Title>
<Description>Parent Description</Description>
<Version>0</Version>
<ParentId></ParentId>
<SubBoardCount>2</SubBoardCount>
</Edits>
クエリ
SELECT
Id 'Id',
Title 'Title',
[Description] 'Description',
Version 'Version',
ParentId 'ParentId',
(select COUNT(*) WHERE ParentId = (CAST(Id AS NVARCHAR(50)))) 'SubBoardCount',
FROM Edits
WHERE ParentId IS NULL OR ParentId = ''
FOR XML PATH('Edits')
問題
なぜ私はいつもSubBoardCount as 0
2ではなく得られるのですか?