0

У меня есть три таблицы PurchaseDetails, SalesDetails и ProductMaster. У меня есть продукт там мастер-P0001Как получить INNER Присоединиться к значению

Как я могу присоединиться к этой таблице в 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 

Выход

enter image description here

может любой решить эту проблему?

+4

Basic отладки SQL - изменить 'пункта SELECT' к' SELECT * ', а затем использовать ваши глазные яблоки, чтобы работать, какие столбцы фактически содержат различные данные. Затем вы должны сообщить об этом, по которому 'JOIN' производят несколько строк. –

ответ

0

У вас нет условий для присоединения к таблице Product_Master, поэтому вы получите все строки из этой таблицы. То есть все строки product_master для всех других строк. Это должно объяснить это. Попробуйте добавить условия соединения к таблицам (таблицам), к которым это относится.

INNER JOIN Product_Master AS PM 
0

Почему ниже утверждение пустое? Есть ли какое-либо значение этого?

Вместо использования Purchase_Order_Details пытается использовать Product_Master первой

INNER JOIN Product_Master AS PM 
+0

Я построил это по системе автоматического не знаю, почему это случилось, вы могли бы мне объяснить? –

+0

Как вы его построили? В Management Studio? Возможно, в базе данных нет внешнего ключа. Затем вам нужно добавить условие соединения вручную. – SAS

Смежные вопросы