2017-12-15 7 views
0

私はどこでもこの答えを探していましたが、答えが見つからないようです。私は倍増する場合の解決方法

CASE WHEN Table.Expirydate < @Today AND CON.Column IS NULL 
    THEN count(ContactID) OVER (PARTITION BY column,type) END 

期待どおりに動作している文は、しかし、それは二行

を生成している非常に単純なケースを持っている私は本当にこの場合、重複を謝罪んが、私は実際にいくつかの助け

が必要

から

結果は、理想的には私がヌルの行を削除したい

NAME COUNTID CLAUSE 
A  10  5 
A  10  NULL 
B  1  1 
B  1  NULL 

です

NAME COUNTID CLAUSE 
A  10   5 
B  1   1 

CASE WHEN MAX(CASE WHEN END)を使用するよう提案しましたが、このエラーが発生しました。私はこれがうまくいかない合体を使用しました。おそらく私は行方不明の何か非常に明白です!

私はストアドプロシージャでこれらのいくつかを持っているので、ちょうどwhere句に入れないことを明確にするために。

次のようにselect文の基本的な部分がある - ちょうどでWHERE句を追加したくなる

Table1.Id AS NAME 

,Count(ConID) OVER (PARTITION BY Table1.Id2) AS COUNTID 

,Case When Statement AS CLAUSE 
+0

をそのように明確にマークされています)。 – Yannis

+0

where case節のフィルタをselect * from abcのように使用するwhere(1 = CASE WHEN Table.Expirydate <@Today AND CON.Column IS NULL THEN 1 END) –

+0

それ自身で 'case expression'は余分な行を作成できません。完全なクエリはそれから小さなスニペットではありません。 –

答えて

0

私のSELECTステートメントとして

:しかし

WHERE Table.Expirydate < @Today AND CON.Column IS NULL 

を、これを行うと、ウィンドウ関数に使用されるデータが変更されます。代わりに

、サブクエリを使用します(あなたのコードセグメントがあるべき質問(https://stackoverflow.com/help)としてどのように上のドキュメントを読み、適切にあなたの質問をフォーマットするために進んでください

select t.* 
from (<your query here>) t 
where <expr> is not null; 
+0

ありがとうございますeveryonesの回答/コメントありがとうございます。実際のコードを作業としてここに掲載することはできません。もう一度サブクエリを試してみます。とにかくありがとう – Angelfish42

関連する問題