у меня есть этот запрос
SELECT
"os_bulan_lalu",
"os_update"
FROM (
SELECT
(SELECT "OUTSTANDING" FROM tbl_nominatif_hasil
WHERE "BUSS_DATE"='2018-11-30' AND "COLLDET"='1')
as os_bulan_lalu,
(SELECT "OUTSTANDING" FROM tbl_nominatif_hasil
WHERE "BUSS_DATE"='2018-12-17' AND "COLLDET"='2A')
as os_update
) AS temp
но этот запрос является ошибкой, когда я запускаю, и мне нужен результат вроде
os_bulan_lalu | os_update
232323 | 21424
343242 | 432
23432 | 23432
234324 | 234324
234324 | 23423423
я имею в виду, что os_bulan_lalu - это BUSS_DATE"='2018-11-30' AND "COLLDET"='1'
, а os_update - это "BUSS_DATE"='2018-12-17' AND "COLLDET"='2A'
ошибка
[Err] ERROR: more than one row returned by a subquery used as an expression
и я хочу результат вроде
os_bulan_lalu | os_update
232323 | 21424
343242 | 432
23432 | 23432
234324 | 234324
234324 | 23423423
@ Tony94 данные имеют номер типа 324242141, а в таблице есть столбец buss_date и colldet для условия ,,, я имею в виду, где buss_date = 'date' и colldet = '1' ,,, это возможно в том, о чем я спрашиваю ??
"запрос - ошибка"? Не хочешь объяснить?
(ВЫБЕРИТЕ «ВЫДАЮЩИЙСЯ» ИЗ tbl_nominatif_hasil, ГДЕ «BUSS_DATE» = '2018-11-30' И «COLLDET» = '1') как os_bulan_lalu, (ВЫБЕРИТЕ «ВЫДАЮЩИЙСЯ» ИЗ tbl_nominatif_hasil ГДЕ «BUSS_DATE» = '2018-12-17' = '2018-12-17' = '2018-12-17' AND "COLLDET" = '2A') as os_update) AS temp [Err] ОШИБКА: более одной строки, возвращенной подзапросом, используемым в качестве выражения
@willy Отредактируйте свой вопрос, указав образец ввода и ожидаемый результат.
извините, ошибка похожа на вверх
@ Tony94 хорошо, я отредактирую
@ Tony94 я обновил вопрос
@willy У вас все еще отсутствуют входные данные
что заставляет два столбца (подзапроса) совпадать или, например, случайным образом 232323 и 21424 составляют первую строку?
@ Tony94, что 232323 и 21424 являются фиктивными данными, не сомневайтесь в этом, ожидаемый результат находится в "BUSS_DATE" = '2018-12-17' И "COLLDET" = '2A' должен отображать фиктивные данные, которые
Это был ответ на мой вопрос?
@JoakimDanielson, думаю, да. Я предполагаю, что левый столбец - это результаты первого подзапроса, а правый столбец - результаты второго.
Итак, мы должны предположить, что порядок не имеет значения?
@ Tony94 Да, конечно, я хочу это сделать ,,,,
@JoakimDanielson да, как добиться результата, как я хочу
Может, что-то вроде этого могло бы сработать
SELECT A.OUTSTANDINGAS os_bulan_lalu, B.OUTSTANDINGAS os_update
FROM (SELECT OUTSTANDING, ROW_NUMBER() OVER ( ORDER BY OUTSTANDING) AS row_num
FROM tbl_nominatif_hasil
WHERE BUSS_DATE = '2018-11-30' AND COLLDET = '1') AS A
JOIN (SELECT OUTSTANDING, ROW_NUMBER() OVER ( ORDER BY OUTSTANDING) as row_num
FROM tbl_nominatif_hasil
WHERE BUSS_DATE = '2018-12-17' AND COLLDET = '2A') AS B ON A.row_num = B.row_num
Он предполагает равное количество строк из обоих запросов, но, ничего не зная о вводе, трудно дать лучший ответ.
Обновлять Если подзапросы возвращают разное количество строк, лучше выполнить FULL OUTER JOIN
вместо JOIN
.
Было бы полезно, если бы вы могли добавить свои входные данные в виде форматированного текста.