2016-10-01 2 views
-2

У меня есть 3 таблицы в SQLSql Таблица присоединиться запрос

  1. ProductMaster с колонкой ProductName
  2. PurchaseData с колонки ProductName и Количество
  3. SaleData с колонки ProductName и Количество

Пожалуйста, наставит меня написать запрос для соединения таблицы, чтобы получить результат под

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

1. У вас есть Количество из PurchaseData таблицы, и количество из SaleData таблицы, ваш ожидаемый результат содержит 3 величины (например, для PRODUCT1: 10 5 и 5). Откуда приходит третье количество?
2. Вам нужен ваш результат в одной строке вместо 3 рядов? –

+0

ПОКУПКА - ПРОДАЖА = ЗАКРЫТЬ АККУМУЛЯТОР –

+0

Я ХОЧУ ТАБЛИЦУ С КОЛОНКОЙ 1) PRODUCTNAME, 2) ПОКУПКА QTY, 3) SALEQTY 4) ЗАКРЫТИЕ АККУМУЛЯТОРА QTY –

ответ

0

Вам не нужно больше ProductMaster таблицы, потому что вся информация, необходимая в PURCHASEDATA и 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

'LEFT OUTER JOIN' позволяет вам получать данные, даже если Productname не существует в вашей таблице SALEDATA. –

+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 на поле ProductName.

+0

Спасибо вам, много ... его работа, но одна проблема с шахтером здесь. Продукт, который только покупает, но не продает этот продукт, не отображается в таблице ..... –

+0

Так что используйте ЛЕВЫЙ ВНЕШНИЙ JOIN вместо INNER JOIN –

+0

yes left external join working ........ спасибо Sir –