подзапрос возвращает несколько строк без операторов - PullRequest
2 голосов
/ 11 июня 2019

У меня есть этот 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 значения. Это не разрешено, когда подзапрос следует =,! =, <, <=,>,> = или когда подзапрос используется как выражение.

несмотря на то, что я не использую таких операторов. Пожалуйста, помогите.

1 Ответ

1 голос
/ 11 июня 2019

Можете ли вы удалить внутреннюю группу и попробовать.Возможно, группа может создавать несколько строк в подзапросе.Отредактировано: добавлено условие, чтобы убедиться, что группировка по тому же элементу группировки.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...