下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數(shù)據(jù)庫 > MS_SQL > SQL開發(fā)知識:sql server把退款總金額拆分到盡量少的多個訂單中詳解

          SQL開發(fā)知識:sql server把退款總金額拆分到盡量少的多個訂單中詳解

          時間:2024-02-13 10:23作者:下載吧人氣:39

          一、問題

          原來有三個充值訂單,現(xiàn)在要退款450元,如何分配才能讓本次退款涉及的充值訂單數(shù)量最少?具體數(shù)據(jù)參考下圖:

          SQL開發(fā)知識:sql server把退款總金額拆分到盡量少的多個訂單中詳解

          二、解決方案

          Step 1:對可退金額進行降序排列,以便優(yōu)先使用可退金額比較大的訂單

          Step 2:使用CTE公用表達式,實現(xiàn)類似for或while循環(huán)或游標的功能

          三、腳本

          create table #t
          (
          充值 int,
          已退 int,
          可退 int
          )
          insert into #t(充值, 已退, 可退)
          values (200, 100, 100), (500, 200, 300), (300, 100, 200)

          /*
          作者:zhang502219048
          腳本來源:https://www.cnblogs.com/zhang502219048/p/14127208.html
          */

          declare @i要退 int = 450;
          with cte1 as
          (
          select *, row_number() over(order by 可退 desc) rn, 0 可發(fā)起退款, 0 待退
          from #t
          ),
          cte2 as
          (
          select rn, 充值, 已退, 可退,
          可發(fā)起退款 = case when @i要退 > 可退 then 可退 else @i要退 end,
          待退 = @i要退 – case when @i要退 > 可退 then 可退 else @i要退 end — 待退 = 要退 – 可發(fā)起退款
          from cte1
          where rn = 1
          union all
          select t2.rn, t2.充值, t2.已退, t2.可退,
          可發(fā)起退款 = case when t1.待退 > t2.可退 then t2.可退 else t1.待退 end,
          待退 = t1.待退 – case when t1.待退 > t2.可退 then t2.可退 else t1.待退 end
          from cte1 t2
          inner join cte2 t1 on t1.rn = t2.rn – 1 — t2是t1的下一條記錄
          –where t2.rn > 1 and t1.待退 > 0
          )
          select * from cte2

          drop table #t

          標簽MSSQL,SQLServer,技術(shù)文檔,數(shù)據(jù)庫,SQLSERVER

          相關(guān)下載

          查看所有評論+

          網(wǎng)友評論

          網(wǎng)友
          您的評論需要經(jīng)過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 中文字幕亚洲乱码熟女一区二区| 日韩社区一区二区三区| 亚洲毛片不卡av在线播放一区 | 国产成人无码aa精品一区| 亚洲无线码一区二区三区| 偷拍精品视频一区二区三区 | 国产91精品一区二区麻豆亚洲| 中文字幕日韩丝袜一区| 福利一区二区三区视频在线观看| 国产人妖视频一区在线观看| 无码人妻一区二区三区兔费| 国产一区二区三区影院| 老熟妇仑乱视频一区二区| 亚洲无线码一区二区三区| 中文字幕乱码一区二区免费 | 国产一区二区精品在线观看| 中文字幕日韩欧美一区二区三区 | 日韩AV无码一区二区三区不卡毛片| 加勒比精品久久一区二区三区| 在线|一区二区三区| 国产精品电影一区二区三区| 香蕉久久ac一区二区三区| 国产成人精品一区二三区熟女 | 国产成人一区二区三区| 日韩AV无码一区二区三区不卡 | 天堂一区二区三区精品| 国产精品亚洲一区二区在线观看| 国产精品视频免费一区二区三区| 濑亚美莉在线视频一区| 国产三级一区二区三区| 国产精品乱码一区二区三区 | 无码人妻久久一区二区三区免费| 国产精品日本一区二区不卡视频 | 国精产品一区一区三区有限公司| 国产精品视频免费一区二区| 国产乱码精品一区二区三区四川| 亚洲一区无码精品色| 无码毛片视频一区二区本码| 无码福利一区二区三区| 国产免费私拍一区二区三区| 中文字幕一区二区三区在线播放|