Как самостоятельно присоединиться к условию и добавить предыдущий столбец?

у меня есть этот запрос

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

Было бы полезно, если бы вы могли добавить свои входные данные в виде форматированного текста.

Tony 18.12.2018 13:57

@ Tony94 данные имеют номер типа 324242141, а в таблице есть столбец buss_date и colldet для условия ,,, я имею в виду, где buss_date = 'date' и colldet = '1' ,,, это возможно в том, о чем я спрашиваю ??

willy 18.12.2018 14:02

"запрос - ошибка"? Не хочешь объяснить?

Joakim Danielson 18.12.2018 14:04

(ВЫБЕРИТЕ «ВЫДАЮЩИЙСЯ» ИЗ 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 18.12.2018 14:08

@willy Отредактируйте свой вопрос, указав образец ввода и ожидаемый результат.

Tony 18.12.2018 14:08

извините, ошибка похожа на вверх

willy 18.12.2018 14:08

@ Tony94 хорошо, я отредактирую

willy 18.12.2018 14:09

@ Tony94 я обновил вопрос

willy 18.12.2018 14:12

@willy У вас все еще отсутствуют входные данные

Tony 18.12.2018 14:14

что заставляет два столбца (подзапроса) совпадать или, например, случайным образом 232323 и 21424 составляют первую строку?

Joakim Danielson 18.12.2018 14:17

@ Tony94, что 232323 и 21424 являются фиктивными данными, не сомневайтесь в этом, ожидаемый результат находится в "BUSS_DATE" = '2018-12-17' И "COLLDET" = '2A' должен отображать фиктивные данные, которые

willy 18.12.2018 14:25

Это был ответ на мой вопрос?

Joakim Danielson 18.12.2018 14:34

@JoakimDanielson, думаю, да. Я предполагаю, что левый столбец - это результаты первого подзапроса, а правый столбец - результаты второго.

Tony 18.12.2018 14:37

Итак, мы должны предположить, что порядок не имеет значения?

Joakim Danielson 18.12.2018 14:38

@ Tony94 Да, конечно, я хочу это сделать ,,,,

willy 18.12.2018 14:47

@JoakimDanielson да, как добиться результата, как я хочу

willy 18.12.2018 14:47
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
3
16
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Может, что-то вроде этого могло бы сработать

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.

Другие вопросы по теме