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())