小编在做组织部维护最后收尾工作的时候,遇到了这样一个问题,须要将定性考核得分查出来、定量考核相应的数据查出来并进行得分计算、附加分查出来,最后将这三部分信息汇总之后得到总成绩,假设当中一项成绩没有进行计算那么是能够得到成绩的。
    展望师哥他们曾经的逻辑。通过两个视图将定性和定量得分计算保存之后。再用一个视图将三个得分连到一起并进行计算。
    被组长规定仅仅能用SQL语句来写,由于这样维护起来就非常方便了。

我開始先用了级联查询并计算,但是效果并不太理想。最后了解到连接查询,经过重复试验,最终有了下面成果:

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT --总排名ROW_NUMBER() OVER(ORDER BY ISNULL((h.AdditionalResults),0) + f.TotalScores ) AS 总排名 ,--园区IDf.ObjectID AS 市直单位id,--园区名称f.Responsibility AS 开发区园区名称,--年份f.YearTime AS 年份,--定量总得分f.QuantifyScores as 定量总得分,--附加分ISNULL((h.AdditionalResults),0) AS 奖惩总得分,--最总定量+定性+附加总分ISNULL((h.AdditionalResults),0) + f.TotalScores AS 总得分
from
--汇总,通过左链接链接之后,查询以下信息,并将定性和定量总得分汇总
(SELECT --园区IDc.ObjectID,--园区名称c.Responsibility,--年份e.YearTime,--定量总得分ISNULL((c.QuantifyScores),0) AS QuantifyScores,--定性定量总得分ISNULL((e.CalculateScores),0) + ISNULL((c.QuantifyScores),0) AS TotalScoresFROM--第一层查询,查询到定性总得分当成基表(SELECT --园区IDd.DevelopmentID,--考核时间d.YearTime,--定性总得分d.CalculateScoresFROMT_DevelopmentScores d) e--和第一层并列的查询,查询到定量信息并计算出定量总分left JOIN (SELECT --园区IDa.ObjectID, --园区名称a.Responsibility,--计算并显示定量总得分ISNULL(CAST(a.score AS real), 0)*ISNULL(CAST(b.Weight AS real), 0) / 100 AS QuantifyScoresFROM T_DevelopmentQuantifyScores a,T_DevelopmentQuantifyTarget b WHERE a.TragetID = b.TragetID ) c ON e.DevelopmentID = c.ObjectID) f
--和定量定性得分汇总并列,通过左链接查询到以下附加分
LEFT JOIN
(SELECT --园区IDg.DevelopmentID,--附加分g.AdditionalResults
FROM T_DevelopmentAdditionalResults g) h ON f.ObjectID = h.DevelopmentID</span>

尝到了SQL语句中连接的甜头,于是小编在网上搜索之后并自己实践,有了以下成果:

举例介绍

以下的内容介绍将会分别用以下两个表进行试验

外连接

左连接(left join或者left outer join):

说明:以左表为基础,查询右表中全部符合条件的信息,不存在的用Null补充

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a LEFT JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>

结果例如以下:

右连接(right join或者right outer join)

说明:以右表为基础,查询左表中全部符合条件的信息,不存在的用Null补充

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a right JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>

结果例如以下:

全然连接(full join或者full outer join)

说明:将两个表中的信息都查出来,没有相应的信息,用Null补充

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a full JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>

结果例如以下:

内连接(inner join)

说明:仅仅显示符合条件的信息,条件能够是(=、<、>、<>、<=、>=、!<、!>),以下仅仅介绍条件为=的内容

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a inner JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>

结果例如以下:

交叉连接(cross join)

无条件

说明:将查到两个表中的全部数据的乘积(假设每一个表中都有3行数据,最后显示3*3=9行数据)

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 cross JOIN dbo.TestTable2
--上面与以下的语句等价
SELECT * FROM dbo.Testtable1, dbo.TestTable2</span>

结果例如以下:

有条件

说明:将上面查到的无条件的结果依照条件进行筛选可是这里仅仅能用where表示不能用on表示

<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a cross JOIN dbo.TestTable2 b WHERE a.Hobbyid = b.Hobbyid</span>

结果例如以下:

总结

小编将这句话送给自己以及全部的读者:
    在将来的路上,了解一块东西就将它的来龙去脉缕个通,并进行总结,这样以后的路将会更加通畅!

SQL Server外连接、内连接、交叉连接相关推荐

  1. 数据库之SQL(基本连接,内连接,左外连接,右外连接,全外连接,交叉连接,自连接)

    之前的博客内容我们分享了数据表的查询与管理,但那只是针对数据库中的一个表格进行的查询管理,现在如果我们想要同时看到两个数据表中的数据的话,那要怎么办呢?采用多连接查询的方式. SQL中有哪几种多连接的 ...

  2. 「数据库」Linux服务安装部署SQL Server -外网安全远程连接【端口映射】

    文章目录 1. 安装sql server 2. 局域网测试连接 3. 安装cpolar内网穿透 4. 将sqlserver映射到公网 5. 公网远程连接 6.固定连接公网地址 7.使用固定公网地址连接 ...

  3. SQL语法 自然连接 外连接 内连接

    文章目录 笛卡尔积 连接 内连接 自连接 自然连接 外连接 左外连接 右外连接 区分连接 自然连接 内连接 内连接.外连接 on 和 where 条件过滤的区别 参考链接 笛卡尔积 结果集数目为多个表 ...

  4. aws rds监控慢sql_在AWS RDS SQL Server中实施SSL连接

    aws rds监控慢sql This article explores a method to enforce SSL for all connections in AWS RDS SQL Serve ...

  5. 彻底解决SQL SERVER 2008无法远程连接的问题

    1.想要彻底解决SQL SERVER 2008无法远程连接的问题必须按照步骤来 一.为 SQL 启用远程连接 1. 单击"开始",依次指向"程序"." ...

  6. 解决SQL Server管理器无法连接远程数据库Error: 1326错误

    解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...

  7. 如何解决 SQL Server 2000 中的连接问题

    时,SQL Server 还将前滚已提交的事务和没有写入硬盘的更改.当恢复过程完成时,SQL Server 将在 SQL Server 错误日志文件中写入下列信息: Recovery Complete ...

  8. SQL SERVER 2005无法远程连接的问题

    SQL SERVER 2005无法远程连接的问题 2009-11-03 16:30 连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 ...

  9. 【技术贴】安装sql server 2005后不能连接服务器,没有studio express以及安

    我自己重装了六次sql server 2005,算是经验人士了,网上资料一大堆,都他妈错的! 如何安装sql server 2005,安装sql server 2005后没有SQL Server ma ...

  10. aws rds监控慢sql_如何将AWS RDS SQL Server与AWS Glue连接

    aws rds监控慢sql This article gives you an overview of configuring AWS RDS SQL Server with AWS Glue ser ...

最新文章

  1. sparkSQL1.1入门之二:sparkSQL执行架构
  2. 【CMake】CMake 引入 ( Android Studio 创建 Native C++ 工程 | C/C++ 源码编译过程 | Makefile 工具 | CMake 引入 )
  3. CentOS环境搭建
  4. 一点等于多少厘米_马桶知识介绍,你了解马桶多少
  5. 贾跃亭时隔四个月再发声 这次还是为了法拉第未来
  6. sql找出2000-3000年中的闰年。_跟飞哥学编程:SQL入门-4-查询和条件
  7. Caffe网络结构实现
  8. 小宇飞刀与xieyunc
  9. 分子动力学模拟算法框架
  10. linux中ps-p,linux下ps命令
  11. 基于 Python 与 mxget 的音乐下载器
  12. 网站换服务器会降权,网站更换IP地址,对SEO有什么影响?
  13. python由编译器将源程序转化为机器语言、然后执行_高级语言程序设计(Python)-中国大学mooc-车万翔-车万翔...
  14. OpenAI发布DALL·E 2
  15. python怎么算列表的平方_Python中排序形式的元素的平方列表
  16. 拳皇世界服务器维护,拳皇世界3月1日更新维护公告 多组服务器开启数据互通[图]...
  17. Java打造RPC框架(四):支持zookeeper与负载均衡
  18. 用Markdown来创建待办事项
  19. 根据身份证号码(15位或者18位)自动获取出生日期及性别
  20. hiho#1082 然而沼跃鱼早就看穿了一切

热门文章

  1. 【AtCoder】AGC009
  2. 299 Bulls and Cows 猜数字游戏
  3. 用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)
  4. 递归获取字符串内的所有图片src地址
  5. 英语学习过程中的几点体会(2)
  6. 使用idea工具运行第一个spring boot项目
  7. Android学习之android源码的导入
  8. java Runtime类
  9. 如何计算机操作维护培训,电脑基本操作培训教材.ppt
  10. 微服务模块综合管理(模块视图管理,自动化热部署,前端资源实时刷新......)