2012-09-19 27 views
0

我有这样的说法:写选择输出到表

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具有ID写(AUTOINC) ,版本(varchar)和日期(sysdate)列,

请问我该怎么做? 谢谢

回答

1

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

0

你应该能够做到这一点:

INSERT INTO Admin.VersionHistory(ColumnName) 
SELECT COUNT(*) 
-- the resut of your query here 
0
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()) 

虽然我已经试过类似的事情在Oracle中我想这不应该在SQL很大的不同。

给它一个镜头。