sql - 子查询返回多行没有运算符
问题描述
我有这个 SQL 查询
SELECT LEFT(ORIGINALPATH, 34), count(originalpath) as docType1,
(SELECT count(originalpath)
FROM docType2
WHERE ORIGINALPATH LIKE 'D:\era-server\16\ibosdata\00001\%'
GROUP BY LEFT(ORIGINALPATH, 34)) AS [dcoType2]
FROM docType1
WHERE ORIGINALPATH LIKE 'D:\era-server\16\ibosdata\00001\%'
GROUP BY LEFT(ORIGINALPATH, 34)
ORDER BY LEFT(ORIGINALPATH, 34);
但我收到以下错误
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
尽管我没有使用这样的运算符。请帮忙。
解决方案
您可以删除内部组并尝试一下。可能 group by 可能会在子查询中创建多行。已编辑:添加了一个条件以确保分组依据是根据相同的分组元素。
SELECT LEFT(ORIGINALPATH, 34), count(originalpath) as docType1,
(SELECT count(originalpath)
FROM docType2 de
WHERE ORIGINALPATH LIKE 'D:\era-server\16\ibosdata\00001\%'
and LEFT(de.ORIGINALPATH, 34) = LEFT(d1.ORIGINALPATH, 34)
GROUP BY LEFT(ORIGINALPATH, 34)) AS [dcoType2]
FROM docType1 d1
WHERE ORIGINALPATH LIKE 'D:\era-server\16\ibosdata\00001\%'
GROUP BY LEFT(ORIGINALPATH, 34)
ORDER BY LEFT(ORIGINALPATH, 34);
推荐阅读
- reactjs - 为什么 If 在 forEach 结束之前完成?
- r - 如何通过一组列的函数打破排序数据中的关系?
- android - 如果我们可以直接从 MVVM 中的 Fragment 访问 Repository,为什么要使用 ViewModel
- sorting - C ++链表合并排序不断丢失节点
- angular - 组件EmployeedetailComponent的模板出现错误
- reactjs - React:通过布局组件传递道具
- mobile - 会话存储不会在移动设备上动态更改依赖框值
- sorting - 如何获得b-tree的第n个值
- c# - 快速报告导致 mvc .net 中的访问被拒绝错误
- python - 如何在 Plyer 中使用语音到文本?它不工作