2013-03-22 119 views
0

我在一个SQL查询工作,请这个人是出 只有一个表达式可以在选择指定此错误SQL查询内部联接错误

消息116,级别16,状态1,2号线
列出子查询何时未与EXISTS一起引入。

这是查询

select 
    *, 
    (select top 1 * 
    from tbl_Renewal 
    where supid = b.S_id 
     and Payed = 1 
    order by 
     renewalid desc) as result 
from 
    tbl_SuperAdmin as b 
inner join 
    tbl_Renewal as c on b.S_id = c.supid 

请检查并给我的解决方案

任何其他解决这一实际任务

请找到波纹管任务简要细节

表1 'tbl_SuperAdmin'已提交

数据,如例如

s_id name age gtc....... 
1  abc 23 ......... 
2  cda 42 .......... 

'tbl_Renewal'

renewalid renname date supid Payed etc...... 
1   first -  1  1 ........ 
2   first -  2  1 ........ 
3   second -  1  0  ........ 
4   second -  1  1  ........ 
5   third-  1  1  ........ 

感谢 普拉迪普

回答

1

你不能把一个*单独列的值另一个表2,

查询应是这样的

select 
     *, 
     (select top 1 COLUMNNAME from tbl_Renewal where supid=b.S_id and Payed=1) as result 
from tbl_SuperAdmin as b inner join tbl_Renewal as c on b.S_id=c.supid 
+0

离开它从tbl_Renewal这个选择顶部1 COLUMNNAME其中supid = b.S_id和所许= 1给波纹管解决方案,如果把columname也重复来了 – 2013-03-22 07:26:48

0

切它短到低于SQL

select top 1 a.*,b.* 

from tbl_Renewal a inner join tbl_SuperAdmin as b 

on b.S_id=c.supid where a.Payed=1 order by b.renewalid desc