在 SQL Server 中合理的使用 LEFT OUTER JOIN 进行开发!
来源:互联网 发布:2016流行网络词 编辑:程序博客网 时间:2024/05/16 16:55
比如我们想对某人的消费项目进行汇总,对应以下两个表:Theme 与 ThemeDetail
Theme 的记录为:
ThemeID(int) ThemeName(varchar[10])
1 就餐
2 出差
3 乘车
4 其它
ThemeDetail 的记录为:
DetailID(int) ThemeID(int) Price(money)
1 1 12.5
2 1 5
3 1 6
4 2 11
5 2 17
6 3 8
其中 Theme 中的 ThemeID 与 ThemeDetail 中的 ThemeID 是一对多的关系,对 ThemeDetail 表的理解如下:“就餐”费用为 12.5 + 5 + 6 = 23.5 元,“出差”费用为 11 + 17 = 28 元,“乘车”费用为 8 = 8 元,“其它”费用不存在,视为 0 处理,对应的 SQL 语句可以这样表示:
SELECT TOP 100 PERCENT dbo.Theme.ThemeName, ISNULL(SUM(dbo.ThemeDetail.Price), 0)
AS TotalPrice
FROM dbo.Theme INNER JOIN
dbo.ThemeDetail ON dbo.Theme.ThemeID = dbo.ThemeDetail.ThemeID
GROUP BY dbo.Theme.ThemeName, dbo.Theme.ThemeID
ORDER BY dbo.Theme.ThemeID
执行结果如下:
ThemeName TotalPrice
就餐 23.5
出差 28
乘车 8
对于消费记录不存的记录如果就这样不显示它的话,使用内联的方法就可以满足要求了,但是我们现在需要对 Theme 中的每一项均做统计,也包括“其它”项,于是我们应该采用另一种方法来实现,这就是左外联的方法,相应的 SQL 语句可以这样表示:
SELECT TOP 100 PERCENT dbo.Theme.ThemeName, ISNULL(SUM(dbo.ThemeDetail.Price), 0)
AS TotalPrice
FROM dbo.Theme LEFT OUTER JOIN
dbo.ThemeDetail ON dbo.Theme.ThemeID = dbo.ThemeDetail.ThemeID
GROUP BY dbo.Theme.ThemeName, dbo.Theme.ThemeID
ORDER BY dbo.Theme.ThemeID
执行结果如下:
ThemeName TotalPrice
就餐 23.5
出差 28
乘车 8
其它 0
这样是不是就满足了我们的要求呢!
- 在 SQL Server 中合理的使用 LEFT OUTER JOIN 进行开发!
- 在 SQL Server 中合理的使用 LEFT OUTER JOIN 进行开发
- sql中left join(left outer join)、inner join的使用,right join(right outer join)的用法和left join的相反就可以了。
- SQL中 inner join、 left outer join 、right outer join、 full outer join之间的区别
- 关于sql server中的 jion,inner join, left join ,left outer join, right join,right outer join 的几点使用心得
- sql中join、left join、left outer join、right join 的区别
- SQL中使用group by 及left outer join...on...
- join联接查询--SQL中 inner join、 left join 、right join、 outer join之间的区别
- SQL中left outer join与inner join 混用时,SQL Server自动优化执行计划
- SQL中 inner join、 left join 、right join、 outer join之间的区别[zz]
- SQL中 inner join、 left join 、right join、 outer join之间的区别
- SQL中 inner join、 left join 、right join、 outer join之间的区别
- SQL中 inner join、 left join 、right join、 outer join之间的区别
- SQL中 inner join、 left join 、right join、 outer join之间的区别
- SQL中 inner join、 left join 、right join、 outer join之间的区别
- 了解SQL中 inner join、 left join 、right join、 outer join之间的区别
- sql server中LEFT INNER RIGHT JOIN的使用情况
- SQL中LEFT JOIN、Inner Join、Right Join、Left Outer Join、full join区别
- 最新ColdFusion MX 7(Blackstone)安装体验
- 成长中必须知道的20个故事
- ShadowStar CodeFast 相关链接
- 一切从零开始
- [ZT]软件开发成功 12 法则
- 在 SQL Server 中合理的使用 LEFT OUTER JOIN 进行开发!
- [ZT]Joel on Software Archive(软件开发成功12法则的作者的文章集)
- 大家共赏一篇来自印度的教义(节选):)[收藏]
- 系统寻找XML解析器的顺序
- C库函数手册(转)
- 不为"事务"而"事务"
- 也是一种挑战
- e的X平方加上e的y平方(C++ code)
- Smarty模板教材