两表全连接与聚合函数问题

happy36524 2014-01-12 03:20:34
select m.学号,SUM(欠费合计) from table1 as m where m.学号 not like '%人' group by m.学号 order by m.学号

select n.* from table2 as n where n.欠费金额 != 0 AND n.学号 is not null order by n.学号

table1与table2按学号是否相等如何实现全连接 ???
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy36524 2014-01-12
  • 打赏
  • 举报
回复
需要注意的是新建一个数据库之后,并没有立马出现代码智能提示,可能会出现红色波浪线标注的"对象名**无效"的提示,这时只需要点击下 “编辑->IntelliSense->刷新本地缓存",这样就会出现代码只能提示了。 ①依次选择“编辑”菜单、“IntelliSense”和“刷新本地缓存”。 ②使用键盘快捷键 Ctrl+Shift+R。 ③从数据库引擎的实例中断开您的编辑器窗口,然后重新连接。
LongRui888 2014-01-12
  • 打赏
  • 举报
回复
引用 2 楼 happy36524 的回复:
问题②:进一步优化:有没有方法在实现全连接后,按某两个字段(表1的欠费合计与表2的欠费金额)是否相等,过滤掉相等的,只显示不相等的
select *
from 
(
    select m.学号,SUM(欠费合计) as t 
    from table1 as m 
    where m.学号 not like '%人' 
    group by m.学号 
)a
full join 
(
    select n.* from table2 as n 
    where n.欠费金额  != 0 AND n.学号 is not null 
)b
 on a.学号 = b.学号
where isnull(a.欠费,0) <> isnull(b.欠费,0)
happy36524 2014-01-12
  • 打赏
  • 举报
回复
问题②:进一步优化:有没有方法在实现全连接后,按某两个字段(表1的欠费合计与表2的欠费金额)是否相等,过滤掉相等的,只显示不相等的
LongRui888 2014-01-12
  • 打赏
  • 举报
回复
select *
from 
(
	select m.学号,SUM(欠费合计) as t 
	from table1 as m 
	where m.学号 not like '%人' 
	group by m.学号 
)a
full join 
(
	select n.* from table2 as n 
	where n.欠费金额  != 0 AND n.学号 is not null 
)b
 on a.学号 = b.学号

34,591

社区成员

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

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