2016-04-11 11 views
0

2つの結果を返すselectクエリがあり、必要なのはそれらを変数のテーブル型に保存することです。これは私がそれをやっている方法です:更新後の空白セルを返す変数のテーブルタイプ2008

ここ
declare @CompletedTotalValues table (CMedian int, CPerc int); 
update @CompletedTotalValues set CMedian = t.CMed, CPercentile = t.CPerc 
from(    
     Select CMed = dbo.median(case when cr.Priority = 1 then cr.Days else null end), 
      CPerc = dbo.Percentile90(case when cr.Priority = 1 then cr.Days else null end) 
     from A a inner join B b on b.Id = a.Id 
     where b.StatusId = 3 
) t; 

、私はサブクエリを実行したとき、私は私がSelect * from @CompletedTotalValuesを実行すると、それは空白の列(値なし、それの両方を返している、CMedが25であるとCPercしかし43で見ますショー)。私のミスはどこですか?任意のアドバイスをいただければ幸いです

+0

私はそれが働いている私の更新クエリの前に@CompletedTotalValues値(0,0,0,0)に挿入追加するときは、あなたが... – Jeremy

+0

おかげジェレミーを更新する前に挿入する必要があります。 –

+1

あなたの挿入ロジックが正しい場合は、更新する必要はないはずです...挿入時に正しい値にする必要がありますか? – Jeremy

答えて

0

最初の場所にデータを挿入してみませんか?

DECLARE @CompletedTotalValues TABLE (CMedian INT, CPerc INT); 
INSERT @CompletedTotalValues (CMedian, CPerc) 
SELECT CMed = dbo.median(CASE WHEN cr.Priority = 1 THEN cr.Days END), 
     CPerc = dbo.Percentile90(CASE WHENn cr.Priority = 1 THEN cr.Days END) 
FROM A 
     INNER JOIN B ON b.Id = a.Id 
WHERE b.StatusId = 3; 
0

私はあなたが共有しているクエリに行っても、最初にテーブル変数にデータを挿入しなくても更新しようとしています。それは...ですか?

関連する問題