База данных: SQL ServerВычитание двух операторов корпуса
Надеюсь, это действительно просто. У меня есть запрос на заказ на поставку, и я пытаюсь вычесть два аргумента case, но у меня возникают проблемы с его работой. Я использую временных таблиц для извлечения данных в заказе на поставку в
См запрос ниже:.
--temp table for PO Inventory lines
select
prchseordr_id,
ISNULL (sum(prchseordrlst_cst_extndd),0) as Inv_Cost
INTO #TempPOInv
from prchseordr
left outer join prchseordrlst on prchseordr.prchseordr_rn = prchseordrlst.prchseordr_rn
where prchseordr_nxt_id = ''
group by prchseordr_id
--------------------
--temp table for PO General lines
select
prchseordr_id,
ISNULL (sum(prchseordrlstgn_cst_extndd),0) as Gen_Cost
INTO #TempPOGen
from prchseordr
left outer join prchseordrlstgn on prchseordr.prchseordr_rn = prchseordrlstgn.prchseordr_rn
where prchseordr_nxt_id = ''
group by prchseordr_id
--------------------
--temp table for PO Subcontractor lines
select
prchseordr_id,
ISNULL (sum(prchseordrlstsb_cntrct_amnt_orgnl),0) as Sub_Cost
INTO #TempPOSub
from prchseordr
left outer join prchseordrlstsb on prchseordr.prchseordr_rn = prchseordrlstsb.prchseordr_rn
where prchseordr_nxt_id = ''
group by prchseordr_id
------------------------------------------------------------
Select
vndr_nme as [Vendor Name],
sum(CASE WHEN prchseordr_type = 'Purchase' THEN Inv_Cost + Gen_Cost + Sub_Cost else 0 end) Purchases,
sum(CASE WHEN prchseordr_type = 'Credit' THEN Inv_Cost + Gen_Cost + Sub_Cost else 0 end) Credits
from prchseordr
left outer join #TempPOInv on prchseordr.prchseordr_id = #TempPOInv.prchseordr_id
left outer join #TempPOGen on prchseordr.prchseordr_id = #TempPOGen.prchseordr_id
left outer join #TempPOSub on prchseordr.prchseordr_id = #TempPOSub.prchseordr_id
join vndr on prchseordr.vndr_rn = vndr.vndr_rn
where prchseordr.prchseordr_entrd_dte between @[email protected] and @[email protected]
and prchseordr_rn <> 0
group by vndr_nme,prchseordr_type
order by vndr_nme
DROP TABLE #TempPOInv
DROP TABLE #TempPOGen
DROP TABLE #TempPOSub
Довольно основной, я просто хочу, чтобы вычесть закупки из кредитов, чтобы получить чистую общую сумму заказов на поставку. Каков наилучший способ сделать эту работу?
Пожалуйста, включите некоторые выборочные данные, чтобы показать, что вы пытаетесь делать. Что вы пытаетесь получить в результате? – Siyual
Учитывая, что 'prchseordr_type' не может быть как' Purchase', так и 'Credit', я не вижу, что вы могли бы вычесть. Кажется, что вам не хватает группировки или какого-либо другого механизма. –
На боковой ноте на любой ответ, который вы выберете, вы можете добавить 'ISNULL (..._ Cost, 0)' (или что-то подобное) вокруг столбцов '..._ Cost', если у вас может быть' NULL 'значения в них. В противном случае 'NULL + AnyValue = NULL'. – BJones