Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-子查询不随EXISTS一起引入_Sql_Sql Server - Fatal编程技术网

SQL-子查询不随EXISTS一起引入

SQL-子查询不随EXISTS一起引入,sql,sql-server,Sql,Sql Server,我正在尝试更新除第一个(最低)账号以外的所有信用计数,但我一直收到此错误: 味精116,第16级,状态1,第8行 当子查询未引入EXISTS时,只能在选择列表中指定一个表达式 以下是查询: update Recog set livesCount = 0 where RECID in (select r.empNumber, r.acctNbr, r.creditCount, r.groupAcctNumber, r.groupType

我正在尝试更新除第一个(最低)账号以外的所有
信用计数,但我一直收到此错误:

味精116,第16级,状态1,第8行
当子查询未引入EXISTS时,只能在选择列表中指定一个表达式

以下是查询:

update Recog
set livesCount = 0
where RECID in (select 
                    r.empNumber, r.acctNbr, r.creditCount, r.groupAcctNumber, r.groupType
                from 
                    Recog r
                where 
                    creditCount > 0 
                    and policyNbr in 
                        (
                            (Select acctNbr from Recog)
                            except 
                            (Select MIN(acctNbr) 
                             from Recog 
                             Group By groupAcctNumber, groupType)
                            )
                        )

如何修复它?

正如错误所述,您正在子查询中选择多个列,只需选择一个就可以了

update Recog
    set livesCount = 0
    where RECID in (
    select r.RECID
    from Recog r
          where creditCount > 0 and
          policyNbr in ((Select acctNbr from Recog)
          except (Select MIN(acctNbr) from Recog Group By groupAcctNumber,groupType)))
为了让它更清楚,想象一下,如果用列数据代替子选择,语句会是什么样子

update Recog
    set livesCount = 0
    where RECID in (1, 'Account 123', 12, 'Group 123', 'Type X') -- Makes no sense

你说的是
RECID在哪里…
然后给它5个字段。在
中执行
操作时,只能选择一个。