Получить количество детей присоединиться к пункту - PullRequest
0 голосов
/ 26 января 2012

Я пытаюсь получить количество всех сообщений, связанных с PostID, к которому присоединился ParentID в объединении, но я получаю сообщение об ошибке, поэтому, когда я делаю группу по всем полям, я все равно получаю сообщение об ошибке: - ошибка ниже

SELECT s.Level, s.Sequence, s.PostID, s.AddedBy,  
s.Title, s.ParentID, s.Path_String, 
Owner = COALESCE(o.AddedBy, s.AddedBy), COUNT(r.ParentID)
FROM cte AS s 
LEFT OUTER JOIN cte AS o 
ON s.ParentID = o.PostID 
RIGHT join cte AS r
on s.PostID = r.ParentID
ORDER BY s.Sequence; 

PostID, ParentID, AddedBy, Title, Path_String: - PostID - это IdentityColumn Path_String в этом формате 1 /, 1/1 /, 1/1/2 и ParentID - это целое число

это мой код для первого результата:

SELECT s.Level, s.Sequence, s.PostID, s.AddedBy,  
s.Title, s.ParentID, s.Path_String, 
Owner = COALESCE(o.AddedBy, s.AddedBy), COUNT(r.ParentID)
FROM cte AS s 
LEFT OUTER JOIN cte AS o 
ON s.ParentID = o.PostID 
join cte AS r
on s.PostID = r.ParentID

GROUP BY s.Level, s.Sequence, s.PostID, s.AddedBy, s.Title, s.ParentID, s.Path_String, COALESCE  (o.AddedBy, s.AddedBy)
ORDER BY s.Sequence; 



    Level       Sequence                    PostID      AddedBy    Title     ParentID    Path_String  Owner    Count                                          

1     00000003                          3           kirkdm     test      NULL        3/           kirkdm   1
2     0000000300000005                  5           MikeDM     re: test  3           3/5/         kirkdm   2
3     000000030000000500000008          8           Joelene    re: test  5           3/5/8/       MikeDM   2
3     000000030000000500000009          9           kirkdm     re: test  5           3/5/9/       MikeDM   1
4     00000003000000050000000900000010  10          Crushanin  re: test  9           3/5/9/10/    kirkdm   1

Должно быть это с колонкой количества ответов это код для моего второго результата, я хочу получить второй результат с подсчетом дочерних элементов:

SELECT s.Level, s.Sequence, s.PostID, s.AddedBy,  
s.Title, s.ParentID, s.Path_String, 
Owner = COALESCE(o.AddedBy, s.AddedBy)
FROM cte AS s 
LEFT OUTER JOIN cte AS o 
ON s.ParentID = o.PostID 
ORDER BY s.Sequence; 

Level       Sequence                                     PostID      AddedBy      Title     ParentID    Path_String     Owner     Count Children of Replies here

1           00000003                                     3           kirkdm       test      NULL        3/              kirkdm
2           0000000300000005                             5           MikeDM       re: test  3           3/5/            kirkdm
3           000000030000000500000008                     8           Joelene      re: test  5           3/5/8/          MikeDM
4           00000003000000050000000800000014             14          Christian    re: test  8           3/5/8/14/       Joelene
4           00000003000000050000000800000015             15          Zeke         re: test  8           3/5/8/15/       Joelene
3           000000030000000500000009                     9           kirkdm       re: test  5           3/5/9/          MikeDM
4           00000003000000050000000900000010             10          Crushanin    re: test  9           3/5/9/10/       kirkdm
5           0000000300000005000000090000001000000011     11          Tim          re: test  10          3/5/9/10/11/    Crushanin

1 Ответ

0 голосов
/ 26 января 2012

Добавить group by предложение.

group by s.Level, s.Sequence, s.PostID, s.AddedBy, s.Title, s.ParentID, s.Path_String, COALESCE(o.AddedBy, s.AddedBy)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...