数据拆分,重复的组合只保留一个,如何执行代码完成

RICHEER COCA RICHEER COCA 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
if object_id('tempdb.dbo.#temp') is not null drop table #temp
go
create table #temp([前区胆码]nvarchar(20),[前区拖码] nvarchar(100),[后区胆码] nvarchar(50),[后区拖码] nvarchar(100))
insert #temp
select '10' ,'01 02 03 04 05 06 07 08 09 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35','','01 02 03 04 05 06 07 08 09 10 11

12'union all
select '10 28' ,'01 02 03 04 05 06 07 08 09 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35','03','05 07 09 10 12'union all
select '03 10 28' ,'01 02 04 05 06 07 08 09 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35','12','01 02 03 05 07 09 11'union all
select '06 07 10 28' ,'01 02 03 04 05 08 09 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35','12','01 02 05 08 09'union all
select '' ,'01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35','','05 09'

--------------生成数据--------------------------


为何执行代码后,无法生成数据
显示的是

消息 8152,级别 16,状态 4,第 1 行
将截断字符串或二进制数据。
语句已终止。


需要解决的问题是
1、第一步生成数据
2、按照 前区胆码、前区拖码、后区胆码、后区拖码里的号码,进行胆拖的投注拆分[,现在用公式只能知道总数,但就不会执行什么代码可以有详细组合(重复的组合只保留一个)

例如,以第三行数据为例
'03 10 28' ,'01 02 04 05 06 07 08 09 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35','12','01 02 03 05 07 09 11'----第三行

(假如为a个前区胆码)03 10 28
(假如为b个前区拖码)01 02 04 05 06 07 08 09 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35
(假如为c个后区胆码)12
(假如为c个后区拖码)01 02 03 05 07 09 11

前区胆码个数为3(0≤a≤4),
前区拖码个数为32(5-a≤b≤35-a),
后区胆码个数为1(0≤c≤1),
后区拖码个数为6(2-c≤d≤12-c),
则此胆拖投注的注数个数为
胆拖的投注拆分说明,总的投注数为COMBIN(b,5-a)*COMBIN(d,2-c)。

前区combin(32,2)×后区combin(6,1)=2976个组合数。
前区combin(32,2)=496 * 后区combin(6,1)=6,那么就有496*6=2976注投注号码,请问如何用执行代码后的结果可以看到详细的组合(重复的组合只保留一个)

胆拖投注注数计算公式:

  设前区胆码个数为a(0≤a≤4),前区拖码个数为m(5-a≤b≤35-a),后区胆码个数为c(0≤c≤1),后区拖码个数为d(2-c≤d≤12-c),则此胆拖投注的注数个数为:

combin(b,5-a)×combin(d,2-c)。

  例:前区胆码个数为3(0≤a≤4),前区拖码个数为32(5-a≤b≤35-a),后区胆码个数为1(0≤c≤1),后区拖码个数为6(2-c≤d≤12-c),则此胆拖投注的注数个数为:combin(32,2)×combin(6,1)=2976。

  
组合:是从n个不同的元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合。
  
组合数公式:  combin(n,m)=n(n-1)…(n-m+1)/1*2…m=n!/m!(n-m)!
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
RICHEER COCA
疑难问题 22,298 成员 121,727 内容