国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

報表填坑經驗-營業額報表(+)

voidking / 1953人閱讀

摘要:今天在檢查報表接口的時候發現了一個非常大的,在同事的幫助下解決了,為了長記性,我就在這里對這個問題做一個詳細的描述剖析,以便以后可以快速解決同一類的問題。

今天在檢查報表接口的時候發現了一個非常大的bug,在同事的幫助下 解決了,為了長記性,我就在這里對這個問題做一個詳細的描述剖析,以便以后可以快速解決同一類的問題。
接口需求:
如下圖所示,在選取時間范圍之后,我需要點擊分別按照 天,月,年 來查看銷售額(總銷售額,退貨金額,減免金額,實際收入)

我的理解誤區:
我剛開始寫這個接口的時候 想通過一些sql來獲取數據庫所有的數據(完成的訂單和退貨的訂單) 然后在java程序里面分別過來退貨訂單,然后通過計算 總銷售額-減免-退貨 = 實際營業額收入,后來發現 按天 月 年 來查詢的時候,
退貨的金額過濾不出來,這就導致了問題:

SELECT DATE_FORMAT(o.create_tm,"%Y-%m") as `period`,
     sum(o.price) as salesTotal,sum(o.price) as returnPrice,sum(o.prixx_redux) as      reduction,o.mode
    FROM
    `ordex` o
     WHERE (o.mode = 2 or o.mode= 1) 
     and o.pay = 1
      and o.shop_id = 10000xx
        and o.create_tm between "2015-12-12" and "2016-02-19"
        group by MONTH(o.create_tm)
    ORDER BY o.create_tm DESC
    

后來經過討論,決定以下sql來解決這個問題:

   SELECT r.period ,salesTotal,reduction ,ifnull (returnPrice,0) as returnPrice , (salesTotal- (reduction+ ifnull (returnPrice,0))) as allin   from 
   (SELECT DATE_FORMAT(o.create_tm,"%Y-%m") as `period`,
     sum(o.price) as salesTotal,sum(o.price_reduce) as reduction
     FROM
    `order` o
     WHERE (o.mode = 2 or o.mode=1) 
     and o.pay = 1
       and o.shop_id = 10000xx
       and o.create_tm between "2015-01-12" and date_add("2016-02-19", INTERVAL 1 day)  
            group by MONTH(o.create_tm)
     ORDER BY o.create_tm DESC ) r
LEFT JOIN 
  (SELECT DATE_FORMAT(o.create_tm,"%Y-%m") as `period`,
    ifnull( sum(o.price),0) as returnPrice
    FROM
    `order` o
     WHERE o.mode = 2
     and o.pay = 1
      and o.shop_id = 10000xx
           and o.create_tm between "2015-01-12" and date_add("2016-02-19", INTERVAL 1 day)  
            group by MONTH(o.create_tm)
     ORDER BY o.create_tm DESC 
) r1
on r.period=r1.period

通過這樣的連接 可以把mode=2的數據多帶帶查出來 加入計算 已達計算的目的

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65510.html

相關文章

  • RPA-RPA是什么

    摘要:是什么機器人流程自動化是在人工智能和自動化技術的基礎上,依據預先錄制的腳本與現有用戶系統進行交互并完成預期任務的技術。能做什么就是把目前系統建設還沒覆蓋到的需要手工處理的領域,通過模擬人工操作并自動回放實現自動化全覆蓋。RPA這項技術自2016年在國際上出現,并于2017年被四大會計師事務所引入中國,目前已經在很多行業有了成功應用,并且因為快捷見效的建設模式得到諸多CIO、CTO的關注。01...

    ernest.wang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<