下面是我在SQLServer中的表中的一行。
Drug Unit Vial1 Vial2 Vial3
X 55 50 12
--**--
Drug = X
Unit = 55
Vial1 = 50
Vial2 = 12
Vial3 = Null
医生给病人注射了55单位(柱单位)的x药。他可以选择2 x小瓶1=100,这意味着他可以使用55注射,丢弃45(不能储存打开的小瓶以备将来使用)。
或者他可以使用5 x vial2=60,这意味着他可以使用55注射,丢弃5。
或者他可以使用1 x vial1+1 x vial2=62,这意味着他可以使用55注射,丢弃7。
同样地,他可以使用任何组合(例如2 x vial2+1 x vial1)。
我需要找出哪个组合最接近单位(组合应该等于或超过单位)。在这种情况下,它是5 x vial2。
我需要一个sql代码来解决这个问题。对不起,我想不出什么主意。
谢谢大家!
你好,thamizhamudhan.r
1条答案
按热度按时间t30tvxxf1#
您可以为此使用递归cte:
这是一把小提琴。
这是另一个例子,所有三瓶。