为什么select distinct u.i_ui_identifier,u.nvc_user_name from t_user_info u join t_contact_person c on c.i_user_id = u.i_ui_identifier group by u.nvc_user_name;这个SQL语句报错:[SQL Server]选择列表中的列 't_user_info.i_ui_identifier' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 (8120),怎么解决
时间: 2023-08-03 10:08:42 浏览: 58
根据错误提示,SQL语句中的i_ui_identifier列没有包含在聚合函数或GROUP BY子句中。解决方法是将i_ui_identifier列添加到GROUP BY子句中,或者使用聚合函数对i_ui_identifier列进行聚合。例如,您可以将SQL语句修改为:
```
SELECT DISTINCT u.i_ui_identifier, u.nvc_user_name
FROM t_user_info u
JOIN t_contact_person c ON c.i_user_id = u.i_ui_identifier
GROUP BY u.i_ui_identifier, u.nvc_user_name;
```
这样就可以避免报错了。
相关问题
select distinct S.customer_name from depositor as S where not exists ( (select branch_name from branch where branch_city = 'Brooklyn') except (select R.branch_name from depositor as T, account as R where T.account_number = R.account_number and S.customer_name = T.customer_name ))
这是一个SQL查询语句,其目的是查询在布鲁克林市没有开户的所有客户姓名。
具体解释如下:
1. `select distinct S.customer_name`:选择不同的客户姓名,以避免重复。
2. `from depositor as S`:从“存款人”表中选择数据,并将其别名为“S”。
3. `where not exists`:使用“not exists”关键字执行否定的存在性检查。
4. `( (select branch_name from branch where branch_city = 'Brooklyn') except (select R.branch_name from depositor as T, account as R where T.account_number = R.account_number and S.customer_name = T.customer_name ))`:在布鲁克林市开户的所有分行名称与S客户的分行名称进行比较,如果S客户未在任何一个分行开户,则该记录将被选择。
需要注意的是,这个查询语句的具体实现方式可能因数据库系统的不同而有所不同。
SELECT DISTINCT o.* FROM operatelog o INNER JOIN sys_user u ON o.user_id = u.id LEFT JOIN sys_user_department d ON d.user_id = u.id ${ew.customSqlSegment}加个条件modifytype=131
如果您想加上条件 `modifytype=131`,可以在这个 SQL 查询语句的最后加上 `AND modifytype=131`。修改后的 SQL 查询语句如下:
```
SELECT DISTINCT o.*
FROM operatelog o
INNER JOIN sys_user u ON o.user_id = u.id
LEFT JOIN sys_user_department d ON d.user_id = u.id
${ew.customSqlSegment}
AND modifytype=131
```
注意,这里的 `${ew.customSqlSegment}` 是一个占位符,具体的查询条件需要根据您的实际情况进行替换。