Как исправить мой запрос?
У меня есть 3 таблицы компании, покупки и продажи.
CREATE table tblCompany (CompanyID int, Company varchar(50)) INSERT INTO tblCompany (CompanyID, Company) VALUES (1, 'ABC') CREATE table tblPurchases (TranID int, CompanyID int, PurQty int) INSERT INTO tblPurchases (TranID, CompanyID, PurQty) VALUES (1, 1, 774) INSERT INTO tblPurchases (TranID, CompanyID, PurQty) VALUES (2, 1, 351) INSERT INTO tblPurchases (TranID, CompanyID, PurQty) VALUES (3, 1, 600) INSERT INTO tblPurchases (TranID, CompanyID, PurQty) VALUES (4, 1, 500) INSERT INTO tblPurchases (TranID, CompanyID, PurQty) VALUES (5, 1, 501) CREATE table tblSales (TranID int, CompanyID int, SaleQty int) INSERT INTO tblSales (TranID, CompanyID, SaleQty) VALUES (1, 1, 2726)
Мне нужен правильный баланс количеств.
CompanyID, TPurQty, TSaleQty, BalanceQty
1 , 2726 , 2726 , 0
Но это выглядит так:
1 , 2726 ,13630 ,-10904
Где ошибка в запросе?
Что я уже пробовал:
SELECT C.CompanyID, ISNULL(SUM(P.PurQty),0) TPurQty, ISNULL(SUM(S.SaleQty),0) TSaleQty , (ISNULL(SUM(P.PurQty),0) - ISNULL(SUM(S.SaleQty),0)) BalanceQty FROM tblCompany C FULL OUTER JOIN tblPurchases P ON C.CompanyID = P.CompanyID FULL OUTER JOIN tblSales S ON P.CompanyID = S.CompanyID GROUP by C.CompanyID
Santosh kumar Pithani
Как я знаю, одно значение (2726) повторяется, то есть 1..n строк далее вы делаете сумму на нем, как (2726 * N строк в таблице).я предлагаю вам использовать "sum(distinct columnname)"
Santosh kumar Pithani
какие условия?