Sql 在临时表中插入多个select语句

Sql 在临时表中插入多个select语句,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有2个select语句,下面我想显示如下输出。目前,我无法将第一个查询与第二个查询联接 fanme lname JobTitle AcceptanceRate Jim Cary Manager 0.666666 我尝试创建临时表并将其插入,但始终显示错误: 提供的值的列名或数目与表定义不匹配 有什么方法可以做到这一点吗?您可以使用条件聚合: select u.*, (select avg(case when q.QuoteStatusID = 6

我有2个select语句,下面我想显示如下输出。目前,我无法将第一个查询与第二个查询联接

fanme   lname  JobTitle   AcceptanceRate
Jim    Cary     Manager    0.666666
我尝试创建临时表并将其插入,但始终显示错误:

提供的值的列名或数目与表定义不匹配


有什么方法可以做到这一点吗?

您可以使用条件聚合:

select u.*,
       (select avg(case when q.QuoteStatusID = 6 then 1.0 else 0 end) as QuoteAccepted
        from Quote q
        where q.ProjectManager_UserID = u.userId
       ) as AcceptanceRate
from users u
where u.UserID = 8
如果希望所有项目经理都使用此选项:

select ProjectManager_UserID,
       avg(case when QuoteStatusID = 6 then 1.0 else 0 end) as AcceptanceRate
from Quote
group by ProjectManager_UserID;

请显示一些示例数据和预期结果。@Dale K,我添加了预期输出的样子,还需要用于生成该/的示例数据。对,但我正在尝试将ProjectManager_UserID与用户表中的UserID合并,以便获得问题顶部列出的名称和职务。所以我可以看到姓名、职务和接受度等等,即使它选择为QuoteAccepted,它说没有列名?对于底部查询,它显示quoteacepted,但对于顶部查询,它不显示quoteacepted。底部查询仅用于用户ID。第一个查询回答了您在此处提出的问题。nvmd,正在运行!嘿,Gordon,是否可以显示所有经理的结果而不是UserID=8?那么基本上是顶部和底部查询的混合?我盯着它看了一个小时,但还是想不出来。如果你能帮上忙,那太好了:)
select u.*,
       (select avg(case when q.QuoteStatusID = 6 then 1.0 else 0 end) as QuoteAccepted
        from Quote q
        where q.ProjectManager_UserID = u.userId
       ) as AcceptanceRate
from users u
where u.UserID = 8
select ProjectManager_UserID,
       avg(case when QuoteStatusID = 6 then 1.0 else 0 end) as AcceptanceRate
from Quote
group by ProjectManager_UserID;