将SQL选择计数结果作为文本添加到现有列

将SQL选择计数结果作为文本添加到现有列,sql,sql-server,select,count,Sql,Sql Server,Select,Count,我有两张桌子: 1. TABLE [dbo].[ItemCategories]( [Id] [int] IDENTITY(1,1) NOT NULL, [CategoryId] [int] NULL, [StockId] [int] NULL, 2. TABLE [dbo].[Categories]( [Id] [int] IDENTITY(1,1) NOT NULL, [ParentCategoryId] [int] NULL, [Catego

我有两张桌子:

1. TABLE [dbo].[ItemCategories](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [CategoryId] [int] NULL,
    [StockId] [int] NULL,

2. TABLE [dbo].[Categories](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ParentCategoryId] [int] NULL,
    [CategoryName] [nvarchar](100) NULL,
    [Slug] [nvarchar](150) NULL
SQL Server 2012中的查询

SELECT [CategoryName], [Slug], [ParentCategoryId], [Id] 
FROM [Categories] 
ORDER BY [ParentCategoryId] DESC
返回这些行

[CategoryName]  [Slug]  [ParentCategoryId]  [Id]
Exercise        exercise    42               46
Fashion         fashion     42               47
我还有第二个问题:

SELECT COUNT(*)
FROM [ItemCategories]
WHERE CategoryId = '46' <--- This Id is the same as [Id] from the first query
我已经创建了这个连接,但我不知道如何将计数(*)添加为文本


您可以使用
count(*)
窗口功能。我会把它放在一个单独的专栏里,但你可以这样做:

SELECT [CategoryName] + ' (' + cast(count(*) over (partition by Id) as varchar(255)) + ')',
       [Slug], [ParentCategoryId], [Id] 
FROM [Categories] 
ORDER BY [ParentCategoryId] DESC;
编辑:

对于两个表,请使用
连接
分组方式

SELECT c.CategoryName + ' (' + cast(count(ic.Id) as varchar(255)) + ')',
      c.Slug, c.ParentCategoryId, c.Id
FROM Categories c LEFT JOIN
     ItemCategories ic
     on ic.CategoryId = c.Id
GROUP BY c.CategoryName, c.slug, c.ParentCategoryId, c.id
ORDER BY ParentCategoryId DESC;

您可以使用
count(*)
窗口功能。我会把它放在一个单独的专栏里,但你可以这样做:

SELECT [CategoryName] + ' (' + cast(count(*) over (partition by Id) as varchar(255)) + ')',
       [Slug], [ParentCategoryId], [Id] 
FROM [Categories] 
ORDER BY [ParentCategoryId] DESC;
编辑:

对于两个表,请使用
连接
分组方式

SELECT c.CategoryName + ' (' + cast(count(ic.Id) as varchar(255)) + ')',
      c.Slug, c.ParentCategoryId, c.Id
FROM Categories c LEFT JOIN
     ItemCategories ic
     on ic.CategoryId = c.Id
GROUP BY c.CategoryName, c.slug, c.ParentCategoryId, c.id
ORDER BY ParentCategoryId DESC;

您可以使用
count(*)
窗口功能。我会把它放在一个单独的专栏里,但你可以这样做:

SELECT [CategoryName] + ' (' + cast(count(*) over (partition by Id) as varchar(255)) + ')',
       [Slug], [ParentCategoryId], [Id] 
FROM [Categories] 
ORDER BY [ParentCategoryId] DESC;
编辑:

对于两个表,请使用
连接
分组方式

SELECT c.CategoryName + ' (' + cast(count(ic.Id) as varchar(255)) + ')',
      c.Slug, c.ParentCategoryId, c.Id
FROM Categories c LEFT JOIN
     ItemCategories ic
     on ic.CategoryId = c.Id
GROUP BY c.CategoryName, c.slug, c.ParentCategoryId, c.id
ORDER BY ParentCategoryId DESC;

您可以使用
count(*)
窗口功能。我会把它放在一个单独的专栏里,但你可以这样做:

SELECT [CategoryName] + ' (' + cast(count(*) over (partition by Id) as varchar(255)) + ')',
       [Slug], [ParentCategoryId], [Id] 
FROM [Categories] 
ORDER BY [ParentCategoryId] DESC;
编辑:

对于两个表,请使用
连接
分组方式

SELECT c.CategoryName + ' (' + cast(count(ic.Id) as varchar(255)) + ')',
      c.Slug, c.ParentCategoryId, c.Id
FROM Categories c LEFT JOIN
     ItemCategories ic
     on ic.CategoryId = c.Id
GROUP BY c.CategoryName, c.slug, c.ParentCategoryId, c.id
ORDER BY ParentCategoryId DESC;



请不要只是要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,了解您真正需要阅读的优秀文章。顺便说一句,
[itemcegories]
[Categories]
是不同的表吗?这就是为什么除了向我们展示您尝试过的查询之外,向我们展示表的定义是一件非常好的事情。您甚至可能想向我们展示测试数据。我添加了join查询,它清楚地显示了表引用。Gordon似乎已经理解了。我已经添加了表格定义。请不要只要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,了解您真正需要阅读的优秀文章。顺便说一句,
[itemcegories]
[Categories]
是不同的表吗?这就是为什么除了向我们展示您尝试过的查询之外,向我们展示表的定义是一件非常好的事情。您甚至可能想向我们展示测试数据。我添加了join查询,它清楚地显示了表引用。Gordon似乎已经理解了。我已经添加了表格定义。请不要只要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,了解您真正需要阅读的优秀文章。顺便说一句,
[itemcegories]
[Categories]
是不同的表吗?这就是为什么除了向我们展示您尝试过的查询之外,向我们展示表的定义是一件非常好的事情。您甚至可能想向我们展示测试数据。我添加了join查询,它清楚地显示了表引用。Gordon似乎已经理解了。我已经添加了表格定义。请不要只要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,了解您真正需要阅读的优秀文章。顺便说一句,
[itemcegories]
[Categories]
是不同的表吗?这就是为什么除了向我们展示您尝试过的查询之外,向我们展示表的定义是一件非常好的事情。您甚至可能想向我们展示测试数据。我添加了join查询,它清楚地显示了表引用。戈登似乎已经明白了。除了他现在告诉我们他真正的意思是两张桌子之外,我还添加了桌子的定义。@JohnSaunders。谢谢你的提醒,谢谢!看起来很接近我想要的,但是所有返回的计数都是(1)@MarioM:如果你给我们看了表的定义,你现在可能已经有了正确的答案。我打赌
CategoryName
在功能上依赖于
Id
。我添加了表定义,但他现在告诉我们他实际上指的是两个表。@JohnSaunders。谢谢你的提醒,谢谢!看起来很接近我想要的,但是所有返回的计数都是(1)@MarioM:如果你给我们看了表的定义,你现在可能已经有了正确的答案。我打赌
CategoryName
在功能上依赖于
Id
。我添加了表定义,但他现在告诉我们他实际上指的是两个表。@JohnSaunders。谢谢你的提醒,谢谢!看起来很接近我想要的,但是所有返回的计数都是(1)@MarioM:如果你给我们看了表的定义,你现在可能已经有了正确的答案。我打赌
CategoryName
在功能上依赖于
Id
。我添加了表定义,但他现在告诉我们他实际上指的是两个表。@JohnSaunders。谢谢你的提醒,谢谢!看起来很接近我想要的,但是所有返回的计数都是(1)@MarioM:如果你给我们看了表的定义,你现在可能已经有了正确的答案。我打赌
CategoryName
在功能上依赖于
Id
。我已经添加了表定义