Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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_Join_Outer Join - Fatal编程技术网

Sql 外部应用在另一个外部应用上?

Sql 外部应用在另一个外部应用上?,sql,sql-server,join,outer-join,Sql,Sql Server,Join,Outer Join,我正在处理的SQL请求有问题 我想返回某个客户订购的某个商品的总数。问题是:当我执行请求时,我得到了不止一行 请注意,这是我的请求的一个非常简化的版本,以帮助理解代码。我的表和行都不是这样命名的 我得到的是: palletnbr ID shipmentid 1 2 340 2 3 340 3 4 340 我想要得到的信息必须具有ID和shipmentid: palletnbr 6 要做到这一点,我必须把我

我正在处理的SQL请求有问题

我想返回某个客户订购的某个商品的总数。问题是:当我执行请求时,我得到了不止一行

请注意,这是我的请求的一个非常简化的版本,以帮助理解代码。我的表和行都不是这样命名的

我得到的是:

palletnbr  ID    shipmentid
1          2     340
2          3     340
3          4     340 
我想要得到的信息必须具有ID和shipmentid:

palletnbr
6
要做到这一点,我必须把我所有的台词都集中在一行。我想做另一个外部应用,但它不会工作,因为我正在做另一个外部应用的外部应用

我想用另一种方式来做我的外部申请,但我似乎不知道怎么做。我试图补充:

GROUP BY shipmentid
但它必须在外部应用,我似乎不知道如何把它放在那里


有谁能想出一个办法来帮我解决这个问题吗?任何小小的暗示都会大有帮助

我意识到您的查询可能更复杂。您问题中的版本似乎更容易用连接而不是交叉应用来回答:


你需要交叉申请有什么原因吗?

好的,我已经按照戈登的回答做了我想做的事情。 以下是我使用的代码,如果有人对它感兴趣,可能会有与我相同的问题:

SELECT outerpallet.pallet as palletnbr, ID, shipmentID FROM arandomtable
--(here are all of my other join that do not affect the question)
OUTER APPLY (SELECT SUM(palletnbr) as pallet 
FROM thepallettable 
INNER JOIN shipmenttable ON shipmenttable.shipmentid = thepallettable.shipmentid
INNER JOIN shipmentdetail ON shipmenttable.shipmentid = shipmentable.shipmentdtlid
GROUP BY shipmentdetail.ID) as outerpallet
WHERE ID = @something
这是一个非常简短和基本的版本,但它可能会帮助被卡住的人。我基本上在我的外部应用程序上添加了一些其他的内部连接,所以它帮助我获得了更高的精度。当然,这不是最有效的方法,但在我的情况下,这是可以的,因为它被用于项目的一小部分,因此不会被一个以上的客户要求。这是我们主要项目的客户个性化


多谢各位

我的查询看起来更像这样:选择。。。从A可移动的内部连接x在y=z在y=z上的内部连接x在y=z上的内部连接x在y=z上的内部连接x在y=z上的左侧连接x在y=z上的左侧连接x在y=z上的左侧连接z在y=z外部应用从可移动组中选择SUMpalletnbr作为托盘,按A可移动的.ID作为外部面板,条件,因此外部应用将是我看到的唯一获得托盘的方法我想要什么。
SELECT SUM(palletnbr) as palletnbr, arandomtable.ID, arandomtable.shipmentID
FROM arandomtable left outer join
     thepallettable 
     on thepallettable.randomID = arandomtable.ID
WHERE arandomtable.ID = @something
group by arandomtable.ID, arandomtable.shipmentID;
SELECT outerpallet.pallet as palletnbr, ID, shipmentID FROM arandomtable
--(here are all of my other join that do not affect the question)
OUTER APPLY (SELECT SUM(palletnbr) as pallet 
FROM thepallettable 
INNER JOIN shipmenttable ON shipmenttable.shipmentid = thepallettable.shipmentid
INNER JOIN shipmentdetail ON shipmenttable.shipmentid = shipmentable.shipmentdtlid
GROUP BY shipmentdetail.ID) as outerpallet
WHERE ID = @something