Sql 代码错误。当子查询未引入EXISTS时,只能在选择列表中指定一个表达式

Sql 代码错误。当子查询未引入EXISTS时,只能在选择列表中指定一个表达式,sql,syntax-error,Sql,Syntax Error,我正在尝试运行此查询,但无论我做什么,都会不断出现此错误,我无法解决它。任何帮助都将不胜感激 select CC.ContactID, from Client C join Contacts CC on CC.ContactID = C.ContactID where ClientID In ( Select

我正在尝试运行此查询,但无论我做什么,都会不断出现此错误,我无法解决它。任何帮助都将不胜感激

select
  CC.ContactID, 

from 
  Client C 
  join Contacts CC on CC.ContactID = C.ContactID 
 where 

        ClientID In (
    
                                  Select 
                                    ClientID,Sum(Total-allocated) as Bal 
                                  from 
                                    Main 
                                  Where 
                                    Total <> Allocated
                                    and NomTypeID < 10 
                                  Group By 
                                    ClientID
                                  HAVING Sum(Total-allocated) > 10
                             )

请使用下面的查询

select
  CC.ContactID from  
Client C 
join Contacts CC on CC.ContactID = C.ContactID 
join (Select ClientID,Sum(Total-allocated) as Bal from Main Where 
Total <> Allocated and NomTypeID < 10 
Group By ClientID HAVING Sum(Total-allocated) > 10)) m
on (C.ClientID = m.ClientID);

我不确定你用的是哪种DB,所以我也无法测试我的答案

但通常在中使用时,需要子查询只返回一列

因此,应将查询从分配为Bal的SumTotal中删除:


请标记您正在使用的数据库
select
  CC.ContactID, 

from 
  Client C 
  join Contacts CC on CC.ContactID = C.ContactID 
 where 

        ClientID In (
    
                                  Select 
                                    ClientID 
                                  from 
                                    Main 
                                  Where 
                                    Total <> Allocated
                                    and NomTypeID < 10 
                                  Group By 
                                    ClientID
                                  HAVING Sum(Total-allocated) > 10
                             )