Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在不更改原始值的情况下选择记录,直到获得值为止?_Sql_Sql Server - Fatal编程技术网

Sql 如何在不更改原始值的情况下选择记录,直到获得值为止?

Sql 如何在不更改原始值的情况下选择记录,直到获得值为止?,sql,sql-server,Sql,Sql Server,我有两个表,结构如下: 我想从表1中选择记录,直到我达到表2中相应的记录金额,而不改变数量。示例:productId 232的订单有160个单位,我必须在表1中搜索,直到我填写160,最后一条记录必须完整,也就是说,不是2行60个单位,第三行40个单位,而是3行60个单位,这样我就可以在不更改原始数量的情况下得到订单数量。结果如下所示: 有可能达到这个结果吗?使用累计总和: select t2.*, t1.* from (select t1.*, sum(qty) over (partition

我有两个表,结构如下:

我想从表1中选择记录,直到我达到表2中相应的记录金额,而不改变数量。示例:productId 232的订单有160个单位,我必须在表1中搜索,直到我填写160,最后一条记录必须完整,也就是说,不是2行60个单位,第三行40个单位,而是3行60个单位,这样我就可以在不更改原始数量的情况下得到订单数量。结果如下所示:

有可能达到这个结果吗?

使用累计总和:

select t2.*, t1.*
from (select t1.*, sum(qty) over (partition by product_id order by reg) as running_qty
      from table1 t1 
     ) t1 join
     table2 t2
     on t1.product = t2.product
where running_qty - qty < t2.order_qty