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 server SQL Server:使用循环连接两个表_Sql Server_Join - Fatal编程技术网

Sql server SQL Server:使用循环连接两个表

Sql server SQL Server:使用循环连接两个表,sql-server,join,Sql Server,Join,我有两张桌子。我是T-SQL的新手 First select返回此结果: ID Quantity ------------- 1 30 2 25 ID Document QuantityS Date ---------------------------------------- 1 DocA 12 22-03-2017 1 DocB 10 18-03-2017 1 D

我有两张桌子。我是T-SQL的新手

First select返回此结果:

ID  Quantity
-------------
1      30
2      25
ID    Document   QuantityS    Date
----------------------------------------
 1    DocA          12        22-03-2017
 1    DocB          10        18-03-2017
 1    DocC          10        15-03-2017
 1    DocD           8         6-03-2017
 2    DocA          20        21-04-2017
 2    DocB          12        18-04-2017
 2    DocC          10        13-04-2017
第二次选择返回此结果:

ID  Quantity
-------------
1      30
2      25
ID    Document   QuantityS    Date
----------------------------------------
 1    DocA          12        22-03-2017
 1    DocB          10        18-03-2017
 1    DocC          10        15-03-2017
 1    DocD           8         6-03-2017
 2    DocA          20        21-04-2017
 2    DocB          12        18-04-2017
 2    DocC          10        13-04-2017
我需要在ID上连接这两个表,并从第二个表中获取行,而
quantityS
的总和大于或等于第一个表中的
Quantity
,按
Date desc
排序

我需要这样的桌子:

ID    Document    QuantityS     Date
------------------------------------------
 1    DocA           12         22-03-2017
 1    DocB           10         18-03-2017
 1    DocC           10         15-03-2017
 2    DocA           20         21-04-2017
 2    DocB           12         18-04-2017
我不需要第二个表的最后一行,因为三行的数量之和是32,大于30

有什么想法吗?

你需要一个:

结果:

| id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 82 | | 1 | DocB | 10 | 2017-03-18 | 82 | | 1 | DocC | 10 | 2017-03-15 | 82 | | 1 | DocD | 8 | 2017-03-06 | 82 | | 2 | DocA | 20 | 2017-04-21 | 82 | | 2 | DocB | 12 | 2017-04-18 | 82 | | 2 | DocC | 10 | 2017-04-13 | 82 | | id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 54 | | 1 | DocB | 10 | 2017-03-18 | 64 | | 1 | DocC | 10 | 2017-03-15 | 74 | | 1 | DocD | 8 | 2017-03-06 | 82 | | 2 | DocA | 20 | 2017-04-21 | 20 | | 2 | DocB | 12 | 2017-04-18 | 32 | | 2 | DocC | 10 | 2017-04-13 | 42 | | id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 12 | | 1 | DocB | 10 | 2017-03-18 | 22 | | 1 | DocC | 10 | 2017-03-15 | 32 | | 1 | DocD | 8 | 2017-03-06 | 40 | | 2 | DocA | 20 | 2017-04-21 | 20 | | 2 | DocB | 12 | 2017-04-18 | 32 | | 2 | DocC | 10 | 2017-04-13 | 42 | 结果:

| id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 82 | | 1 | DocB | 10 | 2017-03-18 | 82 | | 1 | DocC | 10 | 2017-03-15 | 82 | | 1 | DocD | 8 | 2017-03-06 | 82 | | 2 | DocA | 20 | 2017-04-21 | 82 | | 2 | DocB | 12 | 2017-04-18 | 82 | | 2 | DocC | 10 | 2017-04-13 | 82 | | id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 54 | | 1 | DocB | 10 | 2017-03-18 | 64 | | 1 | DocC | 10 | 2017-03-15 | 74 | | 1 | DocD | 8 | 2017-03-06 | 82 | | 2 | DocA | 20 | 2017-04-21 | 20 | | 2 | DocB | 12 | 2017-04-18 | 32 | | 2 | DocC | 10 | 2017-04-13 | 42 | | id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 12 | | 1 | DocB | 10 | 2017-03-18 | 22 | | 1 | DocC | 10 | 2017-03-15 | 32 | | 1 | DocD | 8 | 2017-03-06 | 40 | | 2 | DocA | 20 | 2017-04-21 | 20 | | 2 | DocB | 12 | 2017-04-18 | 32 | | 2 | DocC | 10 | 2017-04-13 | 42 | 结果:

| id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 82 | | 1 | DocB | 10 | 2017-03-18 | 82 | | 1 | DocC | 10 | 2017-03-15 | 82 | | 1 | DocD | 8 | 2017-03-06 | 82 | | 2 | DocA | 20 | 2017-04-21 | 82 | | 2 | DocB | 12 | 2017-04-18 | 82 | | 2 | DocC | 10 | 2017-04-13 | 82 | | id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 54 | | 1 | DocB | 10 | 2017-03-18 | 64 | | 1 | DocC | 10 | 2017-03-15 | 74 | | 1 | DocD | 8 | 2017-03-06 | 82 | | 2 | DocA | 20 | 2017-04-21 | 20 | | 2 | DocB | 12 | 2017-04-18 | 32 | | 2 | DocC | 10 | 2017-04-13 | 42 | | id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 12 | | 1 | DocB | 10 | 2017-03-18 | 22 | | 1 | DocC | 10 | 2017-03-15 | 32 | | 1 | DocD | 8 | 2017-03-06 | 40 | | 2 | DocA | 20 | 2017-04-21 | 20 | | 2 | DocB | 12 | 2017-04-18 | 32 | | 2 | DocC | 10 | 2017-04-13 | 42 | 这将产生:

| id | document | quantity | uploadedOn | runningTotal | |----|----------|----------|------------|--------------| | 1 | DocA | 12 | 2017-03-22 | 0 | | 1 | DocB | 10 | 2017-03-18 | 12 | | 1 | DocC | 10 | 2017-03-15 | 22 | | 1 | DocD | 8 | 2017-03-06 | 32 | | 2 | DocA | 20 | 2017-04-21 | 0 | | 2 | DocB | 12 | 2017-04-18 | 20 | | 2 | DocC | 10 | 2017-04-13 | 32 | |id |文件|数量|上传|运行总计| |----|----------|----------|------------|--------------| |1 | DocA | 12 | 2017-03-22 | 0| |1 | DocB | 10 | 2017-03-18 | 12| |1 | DocC | 10 | 2017-03-15 | 22| |1 | DocD | 8 | 2017-03-06 | 32| |2 | DocA | 20 | 2017-04-21 | 0| |2 | DocB | 12 | 2017-04-18 | 20| |2 | DocC | 10 | 2017-04-13 | 32| 。。。在这一点上,它的形式是我们需要的,准备好连接到另一个具有限制的表



另外,还有另一种方法可以从正在运行的总计中删除当前行,而且也不需要
合并。选择查询的当前形式是因为它意味着windows完全指定了所需的行。另一个版本将留给读者或好奇的表演爱好者作为练习。

到目前为止,您尝试了什么?结果如何?你没有加入两个表。如果您通过ID连接两个表,那么您将选择一行,因为您将看到公共ID为1。我对此不感兴趣,我只是在ID上连接这两个表,但我现在不知道如何执行此操作,使用哪个循环以及如何使用???非常感谢此解释,但我修改了我的问题,因为我有更多ID要连接。你能帮我把代码改成这个例子吗?