2009-05-13 18 views
0

次のクエリを使用して、DRAWINGというテーブル内の合計行を計算しようとしています。 フィールド、プラットフォーム別の描画グループから合計フィールド、プラットフォーム、カウント(doc_id)を選択します。複数の合計をOracleの1つのテーブルに表示

私はまた、各プラットフォーム用のアタッチメント/非添付ファイルの合計を表示する必要が

SQL:file_binがnullグループがない場合、描画から添付として

選択フィールド、プラットフォーム、カウント数(DOC_ID)フィールドで、プラットフォーム;

フィールド、プラットフォーム、カウント(doc_id)を図面からnon_attachedとして選択します。ここで、file_binはフィールドごとの空白です。

3つの値をビューに結合する方法はありますか? 例えば フィールド、プラットフォーム、合計、添付、Non_attached

答えて

1

はこれを試してみてください:ダグラス・トシの提案に

select 
    field, 
    platform, 
    count(doc_id) as total, 
    sum(iif(file_bin is null, 1, 0)) as attached, 
    sum(iif(file_bin is not null, 1, 0)) as non_attached 
from drawing 
where doc_id is not null 
group by field, platform 
+0

合計(IIF(file_binがnull、1、0))添付、 * エラー5行目: ORA-00907:右括弧がありません 私は何かを見逃しているに違いありません。ありがとうございました –

0

おかげで、私の代わりにケースメソッドを使用することができました。

(THEN CASE file_binがnull THEN 1 file_binがnullでない0 END)選択フィールド、 プラットフォーム、 カウント(DOC_ID)合計として、 合計添付として、 合計(CASE file_bin次いで0 file_binがnullでない1 END)はDOC_IDフィールドによってヌル 基、プラットフォーム

完全でない場合図面からnon_attachedとしてヌルです!

おかげで再びダグラス

0

私の代わりにケースのデコードを使用することになり、(未テスト)に良好に機能するのか分からない:として

select field 
,  platform 
,  count(doc_id) as total 
,  sum(decode(file_bin,null,1,0)) attached 
,  sum(decode(file_bin,null,0,1)) non_attached 
from drawing 
where doc_id is not null 
group by field,platform 
+0

私はいくつかの記事を検索し、デコードは大文字と同じパフォーマンスを持っていることがわかりました。デコードは、私のテーブルには、非常に適しています、ありがとう。 caseには、ネストされた条件文を必要とするSQL文の利点がありますが –

関連する問題