在线等 关联表查询的 求count简单

Transitional 2014-10-14 09:50:01
分类表
ID UserName Name
1 aaa 学习

课程表
ID Name 分类ID
1 语文 1
2 数学 1

要求查出结果:
----------------------------------------------
分类ID 分类名称
1 学习(2)
...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
njz168 2014-10-15
  • 打赏
  • 举报
回复
分类表 ID UserName Name 1 aaa 学习 课程表 ID Name 分类ID 1 语文 1 2 数学 1

Select ID as 分类ID,Name+'('+cast(sum(b.id)  as varchar)+')' as 分类名称 from 分类表 a,课程表 b where a.id = b.分类ID group by a.ID
卖水果的net 版主 2014-10-14
  • 打赏
  • 举报
回复

-- 
select id,name + (select '(' + cast(COUNT(*) as varchar(10)) + ')' from 课程表 where a.id = 分类ID)
from 分类表 a 
还在加载中灬 2014-10-14
  • 打赏
  • 举报
回复
SELECT
    A.ID [分类ID]
    ,A.Name+'('+CAST(ISNULL(COUNT(B.ID),0)AS VARCHAR(10))+')' [分类名称]
FROM
    [分类表]A
    LEFT JOIN [课程表]B ON A.ID=B.[分类ID]
GROUP BY
    A.ID
    ,A.Name
还在加载中灬 2014-10-14
  • 打赏
  • 举报
回复
SELECT
    A.ID [分类ID]
    ,A.Name+'('+CAST(ISNULL(COUNT(B.ID),0)AS VARCHAR(10))+')' [分类名称]
FROM
    [分类表]A
    LEFT JOIN [课程表]B ON A.ID=B.分类ID
GROUP BY
    A.ID [分类ID]
    ,A.Name
我上面错了,修改如下
昵称被占用了 2014-10-14
  • 打赏
  • 举报
回复
select b.分类ID,a.Name + '(' + cast(count(1) as nvarchar(10)) + ')' as 分类名称
from 分类表 a,课程表 b
where a.id = b.分类ID
group by  b.分类ID,a.Name
还在加载中灬 2014-10-14
  • 打赏
  • 举报
回复
你参考一下

SELECT
    A.ID [分类ID]
    ,B.Name+'('+CAST(ISNULL(COUNT(B.ID),0)AS VARCHAR(10))+')' [分类名称]
FROM
    [分类表]A
    LEFT JOIN [课程表]B ON A.ID=B.分类ID
GROUP BY
    A.ID [分类ID]
    ,B.Name
xiaodongni 2014-10-14
  • 打赏
  • 举报
回复

with cte as 
(select 1 as id,'aaa' as username,'学习' as name),
cte1 as 
(select 1 as id,'语文'as name ,1 as fid union all
 select 2 as id,'数学' ,1  )
 select a.id as 分类ID,a.name+'('+convert(varchar(3),COUNT(a.id))+')'as 分类名称 from cte as a  join cte1 as b
 on a.id=b.fid
 group by a.id,a.name
 
--结果
分类ID        分类名称
----------- ---------
1           学习(2)

(1 行受影响)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧