求一SQL语句

jason19810924 2009-08-04 09:14:56
一公司生产LCD显示器,假设采购面板为2平方M,分割成15寸(0.2平方M),17寸(0.25平方米),19寸(0.3平方米),22寸(0.33平方米)
请问怎么样设计产生废料最少.如果指定生产19寸后,再设计生产那种搭配最省?SQL语句怎么写.只是比方
...全文
301 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
iishou88 2009-10-31
  • 打赏
  • 举报
回复
mark
xiequan2 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jason19810924 的回复:]
不好意思,能不能再改下,就是指定生产19寸,22寸后.得出其它的所有搭配,包括混合及单独一种,供用户选择.
[/Quote]
declare @t table(a1 decimal(18,2),a2 decimal(18,2),a3 decimal(18,2),a4 decimal(18,2))

insert into @t select 0.2,0.25,0.3,0.33

select top 1 with ties * from --去掉top 1 with ties后可以得到所有的组合情况 此方法为sql2005,如是2000的话,建一个临时表
(
select *,a=a1+a2+a3+a4
from
(select a1*number a1,number as number1 from @t t, master..spt_values m where type='p' and number<=10) t1,
(select a2*number a2, number as number2 from @t t, master..spt_values m where type='p' and number<=10) t2,
(select a3*number a3, number as number3 from @t t, master..spt_values m where type='p' and number<=10) t3,
(select a4*number a4, number as number4 from @t t, master..spt_values m where type='p' and number<=10) t4
) m
where a<=2.0 and number3<>0 and number4<>0 order by abs(a-2)

/*
(1 行受影响)
a1 number1 a2 number2 a3 number3 a4 number4 a
--------------------------------------- ----------- --------------------------------------- ----------- --------------------------------------- ----------- --------------------------------------- ----------- ---------------------------------------
0.20 1 0.50 2 0.30 1 0.99 3 1.99
0.40 2 0.00 0 0.60 2 0.99 3 1.99

(2 行受影响)
jason19810924 2009-08-04
  • 打赏
  • 举报
回复
楼上的太牛了.看样子可以结贴了
jason19810924 2009-08-04
  • 打赏
  • 举报
回复
不好意思,能不能再改下,就是指定生产19寸,22寸后.得出其它的所有搭配,包括混合及单独一种,供用户选择.
xiequan2 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 jason19810924 的回复:]
一公司生产LCD显示器,假设采购面板为2平方M,分割成15寸(0.2平方M),17寸(0.25平方米),19寸(0.3平方米),22寸(0.33平方米)
请问怎么样设计产生废料最少.如果指定生产19寸后,再设计生产那种搭配最省?SQL语句怎么写.只是比方
[/Quote]
 declare @t table(a1 decimal(18,2),a2 decimal(18,2),a3 decimal(18,2),a4 decimal(18,2))

insert into @t select 0.2,0.25,0.3,0.33

select top 1 with ties * from
(
select *,a=a1+a2+a3+a4
from
(select a1*number a1,number as number1 from @t t, master..spt_values m where type='p' and number<=10) t1,
(select a2*number a2, number as number2 from @t t, master..spt_values m where type='p' and number<=10) t2,
(select a3*number a3, number as number3 from @t t, master..spt_values m where type='p' and number<=10) t3,
(select a4*number a4, number as number4 from @t t, master..spt_values m where type='p' and number<=10) t4
) m
order by abs(a-2)


--思想 最小的一块板是0.2平方米,所以完全用这块板最多只能用10,所以这里的number<=10 所得结果a1表示a1用的总量 number1表示用的块数,a 表示总面积
/*
a1 number1 a2 number2 a3 number3 a4 number4 a
--------------------------------------- ----------- --------------------------------------- ----------- --------------------------------------- ----------- --------------------------------------- ----------- ---------------------------------------
0.00 0 2.00 8 0.00 0 0.00 0 2.00
0.00 0 0.50 2 1.50 5 0.00 0 2.00
0.20 1 1.50 6 0.30 1 0.00 0 2.00
0.20 1 0.00 0 1.80 6 0.00 0 2.00
0.40 2 1.00 4 0.60 2 0.00 0 2.00
0.60 3 0.50 2 0.90 3 0.00 0 2.00
0.80 4 0.00 0 1.20 4 0.00 0 2.00
1.00 5 1.00 4 0.00 0 0.00 0 2.00
1.20 6 0.50 2 0.30 1 0.00 0 2.00
1.40 7 0.00 0 0.60 2 0.00 0 2.00
2.00 10 0.00 0 0.00 0 0.00 0 2.00

(11 行受影响)
*/
jason19810924 2009-08-04
  • 打赏
  • 举报
回复
哎,好像全部能整除,应该弄得不能整除才好.数值设得有问题.
zjb211434 2009-08-04
  • 打赏
  • 举报
回复
soft_wsx 2009-08-04
  • 打赏
  • 举报
回复
关注,顶
--小F-- 2009-08-04
  • 打赏
  • 举报
回复
看看 找个算法先
SQL77 2009-08-04
  • 打赏
  • 举报
回复
这只是数学中的解方程,呵呵!!!!求最值问题,不过用SQL的话语句肯定会很多
yygyogfny 2009-08-04
  • 打赏
  • 举报
回复
前排就坐..
黄_瓜 2009-08-04
  • 打赏
  • 举报
回复
观望
soft_wsx 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 js_szy 的回复:]
算法哦,顶下。等楼下
[/Quote]
有没有测试数据
feixianxxx 2009-08-04
  • 打赏
  • 举报
回复
尽量大的先拼接上去 。
csdyyr 2009-08-04
  • 打赏
  • 举报
回复
等蓉儿。
华夏小卒 2009-08-04
  • 打赏
  • 举报
回复
算法哦,顶下。等楼下

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧