Как самостоятельно присоединиться к условию и добавить столбец предыдущего? - PullRequest
0 голосов
/ 18 декабря 2018

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

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_updateis "BUSS_DATE"='2018-12-17' AND "COLLDET"='2A'

ошибка

[Err] ОШИБКА: более одной строки, возвращенной подзапросом, используемым в качестве выражения

, и яхочу результат как

os_bulan_lalu | os_update

      232323 | 21424
      343242 | 432
       23432 | 23432
      234324 | 234324
      234324 | 23423423

1 Ответ

0 голосов
/ 18 декабря 2018

Может быть, что-то подобное может сработать

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...