私は作業中にストアドプロシージャを持っていますが、実行するといくつかのデータが失われています。いくつかのPLANIDのために....それでは、私がここでやろうとしていることはこれですCASE when文SQL Server
INSERT INTO tempIntake (Pop, PlanID, PopFull, ApptDate, [1stAppt], Followup, Rn, UserID)
SELECT Pop, PlanID, PopFull, InterviewDate, 1 stAppt, Followup, rn, @UserID
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY PlanID ORDER BY AddedDate ASC) AS rn
FROM VInfo
WHERE AddedDate IS NOT NULL
) t
WHERE rn = 1 AND interviewdate >= @fromDate AND interviewDate <= @toDate
:私は理由を知っているが、私は、これは私のコードです...苦労のフィギュアを持っています私は日付を追加していない。私がAddedDateでフィルタリングしているので、nullの場合 - このデータは表示されません - 表示する必要があります。この場合、実際にAddedDateがテーブルで利用できるようになると、このように '1/1/2016'のようなダミーの日付にしたいと考えています。ダミーの日付の代わりに使用されます。
これは奇妙に聞こえるかもしれませんが、あなただけ.... 'を削除することはできませんがどこでAddedDateがnullではないのですか? – Lamak
私がやっていることはさらに奇妙です。私はいくつかのPlanId(addeddate = nullといくつかのケースでは実際の日付)に対して複数の値を持っています。 PlanID orderBy AddedDate ASCによってパーティションを追加するときに、addeddateがnullでない場合、実際にMINの日付を取得する必要があるときに、NULL値をすべてプルアップするようです。なぜこれが起こっているのか分かりません。私がする必要があるのは、基本的にdateがNULLのときに指定し、それを1/1/2016にすることです。それはすべてうまくいくでしょう。データは何千ものうちの1レコードだけではありません。 – FatBoySlim7
のように、 'OVER(PARTITION BY PlanId ORDER BY ISNULL(AddedDate、GETDATE())')を使用して、 'AddedDateがnullでない場所'を削除してください。 – Lamak