国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

在 SQL Server 中合理的使用 LEFT OUTER join 進行開發!

2024-08-31 00:48:04
字體:
來源:轉載
供稿:網友


比如我們想對某人的消費項目進行匯總,對應以下兩個表: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

這樣是不是就滿足了我們的要求呢!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固始县| 吐鲁番市| 盐津县| 井研县| 赣州市| 秦皇岛市| 郧西县| 突泉县| 聂拉木县| 苍山县| 长武县| 北宁市| 来安县| 山阴县| 股票| 鄂尔多斯市| 富顺县| 东方市| 莱阳市| 丰城市| 航空| 河南省| 外汇| 蒙山县| 龙州县| 工布江达县| 塘沽区| 东方市| 龙泉市| 宁远县| 中江县| 墨脱县| 孟津县| 定远县| 赤城县| 隆化县| 九龙县| 青海省| 易门县| 贵阳市| 丰都县|