SQL Server 2014:INSERT INTO值和子查询

Use*_*rSN 2 sql t-sql sql-server

我正在尝试通过输入值并从子查询中获取1来将值插入到1个表中,我不确定如何将STATIC VALUES for SaleEventID, PoolName & CurrentUPB与SELECT语句结合使用,这样可以为我提供值PoolID

我将扩展它以包括更多列,我可能需要包括其他选择子查询.

什么是正确的格式?

SELECT DISTINCT [PoolID] 
FROM TESTLOANS
WHERE SaleEventID = 0
Run Code Online (Sandbox Code Playgroud)

尝试将它们组合在一起,但它不起作用.

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

SELECT DISTINCT [PoolID] 
FROM TESTLOANS
WHERE SaleEventID = 55
Run Code Online (Sandbox Code Playgroud)

更新:现在返回我可以使用的CurrentUPB值

SELECT SUM(CurrentUPB) CurrentUPB 
FROM TESTLOANS
WHERE SaleEventID = 0
Run Code Online (Sandbox Code Playgroud)

如果我有更多这些类型的select语句给我一些我的INSERTS的值,我该如何将它们添加到主查询中?

Vam*_*ala 5

使用selectas-is并在同一语句中包含静态值.

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

编辑:使用窗口函数来获取计数或总和.

例如:

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
Run Code Online (Sandbox Code Playgroud)