• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    sql數據庫如何統計總訂單數量大于某值的記錄

    在出產系統中,一個大訂單凡是會拆分為良多的小訂單,每個訂單的數目都不不異,那么,若何才能在訂單明細表中,按照訂單號,對總的訂單數目進行篩選呢?

    東西/原料

    • sqlserver

    方式/步調

    1. 1

      建立一個姑且表,用于演示sqlserver數據庫中,若何在訂單表上,先分類統計,然后再次篩選數據

      IF OBJECT_ID('tempdb..#tblOrder') IS NOT NULL DROP TABLE #tblOrder; 

      CREATE TABLE #tblOrder(

          OrderID varchar(50),    -- 訂單號

          OrderLine int,               -- 訂單行號

          OrderTotal int              -- 訂單數目     

      );

    2. 2

      往姑且表中1插入幾行測試數據,模訂定單數據,此處假設是訂單明細數據,所以訂單號是可以反復的

      insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00001', 1, 1000);

      insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00001', 2, 2000);

      insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00001', 3, 3000);

      insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00002', 1, 4000);

      insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00003', 1, 5000);

    3. 3

      查詢姑且表1中的測試數據

      select * from #tblOrder;

    4. 4

      按照訂單號匯總所有的數目,這個時辰就需要利用到group by分組語句,以及sum統計函數

      select '訂單號' = OrderID, '總數目' = sum(OrderTotal)

      from #tblOrder

      group by OrderID

    5. 5

      在匯總完當作訂單數目的根本上,若何篩選出總訂單數跨越4000的訂單號以及數目呢?最簡單的體例就是,嵌套SQL,再次篩選,實現體例如下

      select '訂單號' = tmp.OrderID, '總數目' = tmp.OrderTotal

      from(

           select OrderID, OrderTotal = sum(OrderTotal)

           from #tblOrder

           group by OrderID

      )tmp

      where tmp.OrderTotal > 4000

    6. 6

      固然,上面的SQL也實現了需求,可是,看起來SQL語句較多。若何才能不利用嵌套SQL呢?先看下面的SQL,概況上看起來,有點像這么回事,可是,現實卻達不到結果。下面的SQL統計的是,訂單明細數目大于4000的值匯總,而不是總訂單數目大于4000的訂單數目匯總

      select '訂單號' = OrderID, '總數目' = sum(OrderTotal)

      from #tblOrder

      where OrderTotal > 4000

      group by OrderID

    7. 7

      當現實營業再復雜一些,獲取的字段再多一些的時辰,不想利用嵌套SQL的時辰,就可以利用having語句了

      select '訂單號' = OrderID, '總數目' = sum(OrderTotal)

      from #tblOrder

      group by OrderID

      having sum(OrderTotal) > 4000

    • 發表于 2019-05-21 21:02
    • 閱讀 ( 1985 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆