Member 13569764 Ответов: 3

Как получить сведения о товаре из двух таблиц (покупка и продажа)


Мне нужен отчет, чтобы получить подробную информацию о товаре, то есть о покупке и продаже этого товара

Что я уже пробовал:

Select (A.ItemCode), A.ItemName, A.Barcode, A.Unit, A.PurchaseRate, A.SellingRate, A.DiscountPercent, A.OpeningStock, A.BatchNo, A.ExpiryDate AS ExpDate,
				B.Quantity AS StockQuantity,E.PurchaseDate,F.InvoiceDate from tblItemMaster A
				INNER JOIN tblStockMaster B ON B.ItemCode=A.ItemCode AND B.BatchNo=A.BatchNo
				INNER JOIN tblPurchaseDetails C ON C.ItemCode=A.ItemCode AND C.BatchNo=A.BatchNo
				INNER JOIN tblSalesDetails D ON D.ItemCode=A.ItemCode AND D.BatchNo=A.BatchNo
				INNER JOIN tblPurchaseMaster E ON E.PurchaseBill=C.PurchaseBill
				INNER JOIN tblSalesMaster F ON F.InvoiceNo=D.InvoiceNo
				Where A.ItemCode='10'

#realJSOP

Идентификация проблемы-это 50% поиска решения. А что у тебя за вопрос?

Member 13569764

у меня есть таблица продаж таблица покупок мне нужно получить все детали из этих двух таблиц в соответствии с товаром

#realJSOP

Это хорошо, но у вас есть шесть таблиц, на которые ссылается ваш запрос, и вы получаете данные из четырех из них. О каких двух вы говорите?

Member 13569764

У меня есть продажи в качестве мастера и детали 2 таблицы же для покупки
Мне нужно получить запрос вот так
СНО. Дата Тип Артикул Количество Стоимость Общая
1 10 продажи 1/12/2018 5 20 25
2 10 покупка 11.11.2018 50 18 500
3 ......

#realJSOP

Отредактируйте свой вопрос, чтобы кто-то мог на него ответить.

W∴ Balboos, GHB

Позвольте мне перефразировать для вас то, что есть в последних нескольких ответах:

Покажи нам, что ты пробовал. Ну и что? Что случилось?

Как вы написали, насколько нам известно, то, что вы пробовали, сработало идеально.

3 Ответов

Рейтинг:
1

Gerry Schmitz

Ваши "внутренние соединения" ничего не дадут, если какая-либо таблица не содержит соответствующей записи (то есть вы предполагаете, что каждый элемент имеет "продажи" и "покупки").

Вам нужно рассмотреть "внешние соединения".

Вероятно, вам также следует сделать "союз" на ваших деталях продаж и покупок в качестве "транзакций".


kmoorevs

Просто добавим, что подзапросы в следующей форме могут решить многие проблемы:
Выбрать сумма(общая площадь.Sum_Sales) как продажи, сумма(общая площадь.Sum_Purchases) как покупки, кв.Артикул
Из (выбрать сумма(А. получила) как Sum_Sales, 0 как Sum_Purchases, А. артикул
От tblSales A
Группа А. Артикул
Союз Всех
Выберите 0 как Sum_Sales, Sum(B. Purchases) как Sum_Purchases, B. ItemCode
От tblPurchases B
Группа Б. артикул) как кв.

Рейтинг:
0

Mohibur Rashid

Это ваш запрос:

SELECT
    A.ItemCode
  , A.ItemName
  , A.Barcode
  , A.Unit
  , A.PurchaseRate
  , A.SellingRate
  , A.DiscountPercent
  , A.OpeningStock
  , A.BatchNo
  , A.ExpiryDate AS ExpDate
  , B.Quantity AS StockQuantity
  , E.PurchaseDate
  , F.InvoiceDate 
FROM
  tblItemMaster                 A
  INNER JOIN tblStockMaster     B ON B.ItemCode       = A.ItemCode AND B.BatchNo=A.BatchNo
  INNER JOIN tblPurchaseDetails C ON C.ItemCode       = A.ItemCode AND C.BatchNo=A.BatchNo
  INNER JOIN tblPurchaseMaster  E ON E.PurchaseBill   = C.PurchaseBill
  INNER JOIN tblSalesDetails    D ON D.ItemCode       = A.ItemCode AND D.BatchNo=A.BatchNo
  INNER JOIN tblSalesMaster     F ON F.InvoiceNo      = D.InvoiceNo
WHERE
  A.ItemCode='10'


Запрос кажется нормальным. Запрос будет работать нормально до тех пор, пока у вас есть запись sails для этого элемента. Если вы хотите видеть результаты, даже если нет продаж. Затем перепишите следующим образом:
-- INNER JOIN reordered
SELECT
    A.ItemCode
  , A.ItemName
  , A.Barcode
  , A.Unit
  , A.PurchaseRate
  , A.SellingRate
  , A.DiscountPercent
  , A.OpeningStock
  , A.BatchNo
  , A.ExpiryDate AS ExpDate
  , B.Quantity AS StockQuantity
  , E.PurchaseDate
  , F.InvoiceDate 
FROM
  tblItemMaster A
  INNER JOIN tblStockMaster     B ON B.ItemCode       = A.ItemCode AND B.BatchNo=A.BatchNo
  INNER JOIN tblPurchaseDetails C ON C.ItemCode       = A.ItemCode AND C.BatchNo=A.BatchNo
  INNER JOIN tblPurchaseMaster  E ON E.PurchaseBill   = C.PurchaseBill
  LEFT OUTER JOIN tblSalesDetails    D ON D.ItemCode       = A.ItemCode AND D.BatchNo=A.BatchNo
  LEFT OUTER JOIN tblSalesMaster     F ON F.InvoiceNo      = D.InvoiceNo
WHERE
  A.ItemCode='10'


Однако есть одна проблема. Что произойдет, если товар будет возвращен и перепродан? Поскольку я не знаю, как вам это удается. Я ничего не могу предложить.


Рейтинг:
0

muhammad sufiyan

Выберите (какие элементы вы хотите достичь)
FROM (выберите таблицу, из которой вы хотите получить какие-либо данные, если таблицы отличаются, то используйте innerjoin с псевдонимом)(например: FROM Table_a as a INNERJOINS Table_b as b on a.empID=b.empID)(innerjoin будет происходить до тех пор, пока данные не будут достигнуты, и будет происходить только в том случае, если атрибуты одинаковы или связаны друг с другом, находясь в разных таблицах)
Где (независимо от условия) (например: где b.empID="5555")