从SQL中的两个不同的表中获取并连接两个行值

时间:2016-05-10 11:42:57

标签: sql sql-server database subquery

我无法从SQL中的两个不同表中获取并连接两个行值。 请在附图中查看我的查询。 以下查询并未向我提供确切的数据

SELECT RequestNo+'::'+convert(varchar(200),(select count(RID)+1 
                                            from BDProjectProposal 
                                            Group by RID)) AS Number
FROM       BDRequestorInfo
WHERE     (RID = @RID)

有什么办法吗?

Photo

2 个答案:

答案 0 :(得分:0)

你可以尝试下面的

SELECT RequestNo+'::'+convert(varchar(200),isnull((select count(RID)+1 
                                            from BDProjectProposal 
                                            Group by RID
                                            having RID = @RID),1) AS Number
FROM       BDRequestorInfo
WHERE     (RID = @RID)

我只在Subselect中添加了WHERE子句(有RID = @RID),以确保只返回一个值。

您的subselect返回一个导致可能出现SQL错误的数据集

我修改了上面的查询并为NULL返回添加了ISNULL(....,1),没有给定@RID的行

答案 1 :(得分:0)

您应该使用相关子查询:

SELECT (RequestNo + '::' +
        convert(varchar(200),
                (select count(RID) + 1 
                 from BDProjectProposal pp
                 where pp.RID = ri.RID)
                ) 
               )
       ) AS Number
FROM BDRequestorInfo ri
WHERE ri.RID = @RID;
相关问题