データベース:SQL Server2つのケースステートメントを控除
これは本当に簡単です。私は購入注文のクエリを持っており、2つのケースステートメントを減算しようとしていますが、問題が発生して動作しています。私は、中に発注データを引き出すために一時テーブルを使用しています
下記を参照のクエリ:。
--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
かなり基本的な
を私はちょうど購入注文の合計額を取得するために、クレジットからの購入を減算します。この仕事をする最良の方法は何ですか?
:
または:
その後、最も読みやすいのと同様に、サブクエリまたはCTEにそれを置くことであろうする。結果として何を得ようとしていますか? – Siyual
'prchseordr_type'が' Purchase'と 'Credit'の両方になることはできないので、私はあなたが引くことができるものを見ません。グループ化やその他の仕組みが欠けているようです。 –
あなたが選択したどちらの答えにも注意して、あなたがあなたの '..._ Cost'カラムのまわりに' ISNULL(..._ Cost、0) '(またはそれに類するもの)それらの値。そうでなければ 'NULL + AnyValue = NULL'を返します。 – BJones