我有三个表PurchaseDetails,SalesDetails和ProductMaster。 我在那里有一个产品P0001
如何在sql2008中加入此表以获取损益报告
我已经写了这段代码我不知道为什么它会显示四次...
SELECT PM.product_id,
PM.product_name,
PM.company_name,
PM.opening_stock,
(SELECT SUM(CAST(qty AS decimal(18, 0))) AS [Purchase Stock ]
FROM Purchase_Order_Details) AS [Purchase Stock ],
CAST(CONVERT(decimal(18, 0), PM.opening_stock) +
(SELECT SUM(CAST(qty AS decimal(18, 0))) AS [Purchase Stock ]
FROM Purchase_Order_Details AS Purchase_Order_Details_1) AS decimal(18, 0)) AS [Total Purchase Stock],
CAST(CONVERT(decimal(18, 2), PM.opening_stock) * CONVERT(decimal(18, 2), PM.rate) + CONVERT(decimal(18, 2), PO.net_amount) AS decimal(18, 2)) AS [Total Purchase Cost],
(SELECT SUM(CAST(qty AS decimal(18, 0))) AS [Purchase Stock ]
FROM Order_Details) AS [Sales Stock ], PM.closing_stock AS [Closing Stock], O.net_amount AS [Sales Cost]
FROM Purchase_Order_Details AS POD
INNER JOIN Purchase_Order AS PO ON POD.pdoc_id = PO.pdoc_id
INNER JOIN Product_Master AS PM
INNER JOIN Order_Details AS OD ON PM.product_id = OD.product_id
INNER JOIN Ordered AS O ON OD.doc_id = O.doc_id ON POD.product_id = PM.product_id
输出
任何人都可以解决这个问题吗?
答案 0 :(得分:0)
您对Product_Master表的连接没有条件,因此您将获得该表中的所有行。也就是说,所有其他行的所有product_master行。那应该解释一下。尝试将连接条件添加到与其相关的表中。
INNER JOIN Product_Master AS PM
答案 1 :(得分:0)
为什么以下声明为空?它有什么意义吗?
而不是使用Purchase_Order_Details尝试首先使用Product_Master
INNER JOIN Product_Master AS PM