2016-10-01 117 views
-2

我在SQL 3个表SQL表连接查询

  1. ProductMaster与列产品名称
  2. 购买数据与列产品名称和数量
  3. SaleData与列产品名称和数量

请指引我为表连接写查询得到如下结果

PRODUCT1 10 5  5 
PRODUCT2 10 0  10 
PRODUCT3 10 5  5 
+0

1.你必须从数量表购买数据,并从数量表SaleData,您预期的结果包含3个数量(例如,对于PRODUCT1:10 5和5)。第三个数量来自哪里?
2.你想在一行而不是三行上得到结果吗? –

+0

购买 - 销售=关闭股票 –

+0

我想要一张表1)产品名称,2)购买数量,3)销售量4)关闭库存数量 –

回答

0

您不再需要ProductMaster表,因为你需要的所有信息都在购买数据和SALEDATA

SELECT P.[ProductName] as ProductName, P.PurchaseQty, S.SalteQTY, P.purchaseQTY-S.SalteQTY as ClosingQty 

    FROM [PURCHASEDATA] P LEFT OUTER JOIN [SALEDATA] S ON P.ProductName=S.ProductName 
+0

Sir'LEFT OUTER JOIN'允许你获取数据,即使你的SALEDATA表中不存在Productname。 –

+0

是的,这是非常有用的.......按我希望工作.........谢谢 –

0

尝试开始是这样的:

SELECT [ProductMaster].[ProductName] 
    ,[PurchaseData].[Quantity] AS [PurchasedQuantity] 
    ,[SaleData].[Quantity]  AS [SoldQuantity] 
    ,[PurchaseData].[Quantity] 
     - [SaleData].[Quantity] AS [ClosingStock] 
    FROM [ProductMaster] 
    LEFT OUTER JOIN [PurchaseData] 
     ON [ProductMaster].[ProductName] = [PurchaseData].[ProductName] 
    LEFT OUTER JOIN [SaleData] 
     ON [ProductMaster].[ProductName] = [SaleData].[ProductName] 

的想法是有主表和联接两个从属表到主用INNER JOIN在产品名称字段。

+0

谢谢你洙多.......其工作,但一个矿工问题是这里只有购买但没有售完的产品没有在表中显示..... –

+0

所以使用左外连接而不是内连接 –

+0

是左外连接正在工作........谢谢你 –