计算促销最优组合方案
生活随笔
收集整理的這篇文章主要介紹了
计算促销最优组合方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
--1.建表
CREATE TABLE #A
(
id INT IDENTITY(1,1),
model VARCHAR(10),
price DECIMAL(18,2)
)
--2.插入數據
INSERT INTO #A
SELECT 'A',140
UNION
SELECT 'B',130
UNION
SELECT 'C',80
UNION
SELECT 'D',70
UNION
SELECT 'E',60
UNION
SELECT 'F',50
UNION
SELECT 'G',40
--3.查詢
;WITH ct
AS
(SELECT model, CONVERT(VARCHAR(max),model) AS models,price,CONVERT(INT,price/200) AS Z FROM #A UNION ALLSELECT b.model,a.models+'+'+b.model,CONVERT(DECIMAL(18,2),a.price+b.price),CONVERT(INT,(a.price+b.price)/200) AS ZFROM ct A INNER JOIN #A B ON CHARINDEX(b.model,models)=0 AND a.model<b.model
)
SELECT *,STUFF((SELECT TOP (Z) '+'+model FROM #A WHERE CHARINDEX(model,A.models)=0 FOR XML PATH('') ) ,1,1,'') AS W,
(SELECT SUM(price) FROM ( SELECT TOP (Z) price FROM #A WHERE CHARINDEX(model,A.models)=0) Y) AS TFROM ct A ORDER BY price%200 ,T desc
型號 價格
A 140
B 130
C 80
D 70
E 60
F 50
G 40
規則:每滿200送一件
如何計算出買哪些型號贈送哪些型號是最優的方案?
總結
以上是生活随笔為你收集整理的计算促销最优组合方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 促销活动规则
- 下一篇: 100种活动促销方案