Я пытаюсь создать поле с именем Owner в моей таблице, где вы выбираете поле AddedBy, где parentID равен PostID, пока он только печатает первое поле, а второе всегда пусто.Я делаю подзапрос на запрос.Я пытаюсь получить родительское поле AddedBy
SELECT Level, Sequence, PostID, AddedBy, Title, ParentID, Path_String,
CASE WHEN ParentID IS NULL THEN
AddedBy
ELSE
(SELECT AddedBy FROM cte o WHERE o.PostID = ParentID)
END AS Owner
FROM cte order by Sequence
Я пытаюсь получить количество всех сообщений, связанных с 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;
я получаю следующую ошибку:
Msg 8120, Level 16, State 1, Procedure sproc_GetPostsByThread, Line 34
Column 'cte.Level' is invalid in the select list because it is not
contained in either an aggregate function or the GROUP BY clause.
PostID, ParentID, AddedBy, Title, Path_String: - PostID isIdentityColumn Path_String имеет этот формат 1 /, 1/1 /, 1/1/2 и ParentID является целым числом
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
Должно быть это
Level Sequence PostID AddedBy Title ParentID Path_String Owner Count column 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