加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

在 SQL Server 中公道的行使 LEFT OUTER JOIN 举办开拓!

发布时间:2018-08-15 13:18:08 所属栏目:电商 来源:站长网
导读:好比我们想对或人的斲丧项目举办汇总,对应以下两个表:Theme 与 ThemeDetail Theme 的记录为: ThemeID(int)ThemeName(varchar[10]) 1就餐 2出差 3搭车 4其余 ThemeDetail 的记录为: DetailID(int)ThemeID(int)Price(money) 1112.5 215 316 4211 5217 63

好比我们想对或人的斲丧项目举办汇总,对应以下两个表: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

这样是不是就满意了我们的要求呢!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读