2016-08-15 123 views
-2
  • 用的Id-PROD,递减,日期字段
  • 与参赛作品的Id-PROD数量,金额的产品。
  • 带Id-Prod数量,数量的分拣。

我想让它加入的ID-PROD的3个表和分组它的查询,总结每个产品的数量和金额计算这些股票等于总结quantityIn -sum QUantityOut 谢谢SQL加入3个表组和

+2

你尝试过什么然而?如果你想要一个快速的答案(或任何答案),你应该清理你的问题,以便更清楚。你可以包含一些示例数据。 –

+0

问题不太清楚。你能提供一些样本数据和你想要得到的结果吗? – Mureinik

+0

有没有办法回答这个问题,因为你不告诉我们如何计算出数量和数量。 – Hogan

回答

1

的加入,与1-N和看起来是这样的 - 我们需要做一个子查询来获得左侧前的款项联接和聚结以空值设置为0。

SELECT P.ID-Prod, 
     COALESCE(E.s,0) AS IN-Q, 
     COALESCE(S.s,0) AS OUT-Q, 
     COALESCE(E.s,0) - COALESCE(S.s,0) AS Stock 
FROM Products P 
LEFT JOIN (SELECT ID-Prod, SUM(Quantity) AS s 
      FROM ENTRIES GROUP BY ID-Prod) E ON P.ID-Prod = E.ID-Prod 
LEFT JOIN (SELECT ID-Prod, SUM(Quantity) AS s 
      FROM Sorties GROUP BY ID-Prod) S ON P.ID-Prod = S.ID-Prod 
GROUP BY P.ID-Prod 
+0

如果没有条目和Sorties之间的联系,那么条目和Sorties数量是不是可以通过联接虚拟夸大?因此在加入之前可能需要完成的总和? (然而,我会同意关于这方面的问题还不清楚)。想象一下,产品1的1,2,3的入口数量和产品1的4,5的数量。如果数量1与4和5都相关; 1将被计数两次,并且4将被计数3次,每次进入记录一次。 – xQbert

+0

@xQbert你的意思是如果E和S表中有1-N?是的,这是一个问题,让我解决。 – Hogan

+0

1-N是的。这个问题对细节还不清楚,但对于表格结构来说,这似乎是一种可能的风险。 – xQbert