Sql server 将select的输出写入表中

Sql server 将select的输出写入表中,sql-server,Sql Server,我有以下声明: insert into Admin.VersionHistory --do not know what to put here select COUNT(*) as cnt from membership.members as mm left join aspnet_membership as asp on mm.aspnetuserid=asp.userid left join trade.tradesmen as tr on tr.memberid=mm.

我有以下声明:

 insert into Admin.VersionHistory --do not know what to put here
 select COUNT(*) as cnt
 from membership.members as mm 
 left join aspnet_membership as asp
 on mm.aspnetuserid=asp.userid 
 left join trade.tradesmen as tr 
 on tr.memberid=mm.memberid  
 where asp.isapproved = 0 and tr.ImportDPN IS NOT NULL and tr.importDPN <> ''
它给我的总数是179956。我想把这个总数写到另一个名为Admin.VersionHistory的表中,该表包含idautoinc、versionvarchar和datesysdate列

请问我怎么做?
谢谢

您的查询返回一列一行的结果集。它可以插入到某个具有一个整数列的表中。您的目标表不适合这样做,因为它有三列。

您应该能够做到这一点:

INSERT INTO Admin.VersionHistory(ColumnName) 
SELECT COUNT(*)
-- the resut of your query here
虽然我在Oracle中也尝试过类似的事情,但我想在SQL中应该不会有太大的不同

试试看

INSERT INTO Admin.VersionHistory (ColCount, version, Sysdate)
VALUES(  

(SELECT COUNT(*) AS cnt  FROM membership.members AS mm     
lLEFT JOIN aspnet_membership AS asp ON mm.aspnetuserid = asp.userid   
LEFT JOIN trade.tradesmen AS tr ON tr.memberid=mm.memberid   
WHERE   
asp.isapproved = 0 AND   
tr.ImportDPN IS NOT NULL AND   
tr.importDPN <> ''),   
VERSIONVALUE, GETDATE())