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

Sql 如何将两个表中的数据合并到一个表中?

Sql 如何将两个表中的数据合并到一个表中?,sql,sql-server,tsql,join,Sql,Sql Server,Tsql,Join,当我注释掉与Sales Line或Warehouse Entry表相关的所有行时,查询按预期工作。但当我按原样使用这个查询时;它返回的数据至少高5位 其思想是迭代Item表,获得库存量、销售数量和价值。我想我加入这些桌子的方式一定有问题。仓库条目和销售行表格都有多个条目,可以链接到I.[否] 正确的数据 140003000007|61703.24000000000000000000|13623.801800|2459.17000000000000000000 试试这个。当您想使用sum或min

当我注释掉与Sales Line或Warehouse Entry表相关的所有行时,查询按预期工作。但当我按原样使用这个查询时;它返回的数据至少高5位

其思想是迭代Item表,获得库存量、销售数量和价值。我想我加入这些桌子的方式一定有问题。仓库条目和销售行表格都有多个条目,可以链接到I.[否]

正确的数据

140003000007|61703.24000000000000000000|13623.801800|2459.17000000000000000000

试试这个。当您想使用sum或min函数聚合数据时,我建议您在子集中这样做。这样您就可以保持简单

将WE和S条件移动到ON子句,以获得真正的左连接行为。@jarlh,谢谢,但数字仍然不正确。我将编辑我的代码你可以发布示例数据并期望结果吗?用内部连接替换左连接并删除。。。不是空的。。。行谢谢,但还是错了:/哎哟-这么多嵌套查询。如果必须多次重新运行查询,则不太好不太好。每个子集只返回所需的结果,因为where子句仅在子集中定义。这里只有1级的筑巢,无论如何,它不应该吓到你。谢谢@Sapi,你的查询工作已经完成,我不得不在这里和那里做一些更改,但是从你写它的速度和花我的时间来看,我不想看一件礼物无论如何,查询速度都很快
140003000007|204484537.36000000000000000000|13051602.124400|    2355884.86000000000000000000
140003000007|61703.24000000000000000000|13623.801800|2459.17000000000000000000
SELECT  sumQuantityBase as [Quantity Sold],
        minIP * sumQuantityBase as [Stock Value],
        sumQuantityBase as [Quantity Stock]
FROM
    (SELECT MIN(I.[IP Total (Manual)] )as minIP,
            No_
     FROM I 
     WHERE [No_] like '140003000007'
     GROUP BY No_) MinI INNER JOIN
    (SELECT SUM([Quantity]) as sumQuantity,
            [Item No_]
     FROM WE 
    WHERE [Location Code] = 'BU' 
      AND [Bin Code] <> 'SHIPPING'  
      AND [Bin Code] <> 'WORKSHOP' 
      AND [Bin Code] <> 'OUTBOX'  
      AND [Bin Code] <> 'CUT' 
      AND [Bin Code] <> 'VERZEND'    
      GROUP BY [Item No_] ) SumWE
  ON MinI.[No_]  = SumWE[Item No_] INNER JOIN
  (SELECT SUM([Quantity (Base)]) as sumQuantityBase,
          No_
   FROM S 
   WHERE [Shipment Date] > '07/01/2015' 
     AND [Shipment Date] IS NOT NULL  
     AND [Document Type] = 1 
  GROUP BY No_ ) SumS
 ON SumS.[No_] = MinI.[No_]