三表查询

cqhq2008 2014-03-10 08:37:47
各位大家好,我有三表,结果如下:
1、CREATE TABLE [dbo].[Schools](
[sc_Code] [varchar](10) NOT NULL,//学校代码
[sc_Name] [varchar](30) NOT NULL,//学校名称
PRIMARY KEY CLUSTERED
2、CREATE TABLE [dbo].[Students](
[st_id] [int] IDENTITY(1,1) NOT NULL,
[st_No] [varchar](50) NOT NULL,
[st_Name] [varchar](20) NOT NULL,
[st_Sex] [char](2) NOT NULL,
[sc_Code] [varchar](10) NOT NULL,//学校代码
CONSTRAINT [PK__Students__A85E81CF29572725] PRIMARY KEY CLUSTERED
3、CREATE TABLE [dbo].[StudentsCounts](
[sc_Code] [varchar](10) NOT NULL,//学校代码
[StudentsCounts] [int] NULL,//学校计划招生人数
PRIMARY KEY CLUSTERED
希望得到结果为:序号列,学校名称,计划招生人数,实际招生人数,剩余招生人数
实际找人人数可以从Students中分校统计出来,请问该如何写sql语句呢,谢谢!
...全文
187 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huaneramn 2014-03-11
  • 打赏
  • 举报
回复
楼上是高手级菜鸟。。。。。。。。。。。。。。
  • 打赏
  • 举报
回复

select a.sc_Code as 序号列,a.sc_Name as 学校名称,c.StudentsCounts as 计划招生人数,
count(b.st_id) as 实际招生人数,(c.StudentsCounts-count(b.st_id))  as 剩余招生人数
from Schools a 
left join Students b on a.sc_Code=b.sc_Code
left join StudentsCounts c on a.sc_Code=c.sc_Code
使用join 的方式,代码会看起来更清晰一些
H_Gragon 2014-03-10
  • 打赏
  • 举报
回复
引用 1 楼 yangmingxing980 的回复:
select Schools.*,Students.*,StudentsCounts.* from Schools,Students,StudentsCounts where StudentsCounts.sc_Code=Students.sc_Code and Students.sc_Code=Schools.sc_Code 反正大致就是这种形式的,你可以根据你的具体情况再修改下。
楼主试试!
我本良人 2014-03-10
  • 打赏
  • 举报
回复
select Schools.*,Students.*,StudentsCounts.* from Schools,Students,StudentsCounts where StudentsCounts.sc_Code=Students.sc_Code and Students.sc_Code=Schools.sc_Code 反正大致就是这种形式的,你可以根据你的具体情况再修改下。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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