2016-12-03 10 views
2

値を入力してサブクエリから1を取得すると、1つのテーブルに値を挿入しようとしていますが、SaleEventID, PoolName & CurrentUPBのSTATIC VALUESをSELECTと組み合わせる方法がわかりません私に値する文章PoolIDSQL Server 2014:INSERT INTO値とサブクエリ

追加の選択サブクエリを含める必要があるより多くの列を含めるようにこれをスケールアップします。

適切なフォーマットは何ですか?

SELECT DISTINCT [PoolID] 
FROM TESTLOANS 
WHERE SaleEventID = 0 

これを組み合わせて試してみましたが、機能しません。

INSERT INTO TESTPOOLS (SaleEventID, PoolID, PoolName, CurrentUPB) 
VALUES ('55', [POOLID], 'SouthernFL', '45,000') 

SELECT DISTINCT [PoolID] 
FROM TESTLOANS 
WHERE SaleEventID = 55 

UPDATE:今、私は私のインサートの一部のために私に値を与えるSELECT文のこれらのタイプのいくつかのより多くを持っている場合、私は、どのように行う

SELECT SUM(CurrentUPB) CurrentUPB 
FROM TESTLOANS 
WHERE SaleEventID = 0 

を使用することができますCurrentUPB値を戻します私はそれらをメインクエリに追加しますか?

答えて

5

selectをそのまま使用し、静的な値を同じステートメントに含めます。

INSERT INTO TESTPOOLS (SaleEventID, PoolID, PoolName, CurrentUPB) 
SELECT DISTINCT '55', [POOLID], 'SouthernFL', '45,000' 
FROM TESTLOANS 
WHERE SaleEventID=0 

編集:カウントまたは合計を取得するためにウィンドウ関数を使用します。例えばのために

:タイマーが私をすることができますよう、すぐに受け入れる@vkp

INSERT INTO TESTPOOLS (SaleEventID, PoolID, PoolName, CurrentUPB,somecount) 
SELECT DISTINCT '55', [POOLID], 'SouthernFL' 
,sum(currentUPB) over(partition by poolid) --if you don't need the sum by poolid just use sum(currentUPB) over() 
,count(*) over(partition by poolid) --if you don't need the count by poolid just use count(*) over() 
FROM TESTLOANS 
WHERE SaleEventID=0 
+0

感謝。 – UserSN

+0

'SELECT COUNT(*)NumberOfLoans FREST TESTLOANS WHERE SaleEventID = 0'のような追加のSELECT文を追加する必要がある場合は、単にそれをSELECT DISTINCTの下に追加しますか? – UserSN

+1

@AlexP ..編集を参照してください。 –