Ошибка Oracle: блок запроса содержит неверное количество столбцов результата - PullRequest
0 голосов
/ 17 марта 2020

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

SELECT storeidint as Test_AUCH,  storename as NAME
FROM (
        SELECT ds.STORESID, ds.STORENAMES, u.ALL_STORES, alus.STORE_ID, ds.STOREIDINT , TO_NUMBER(COALESCE(STORE_ID,'0'))
        FROM Test.Test u
        LEFT JOIN test12 ds ON 1=1 AND ds.activ = 1
        LEFT JOIN  test 123 alus ON u.USER_ID = alus.USER_ID AND ds.STOREIDINT = alus.STORE_ID
        WHERE U.USER_ID = :USER_ID AND ds.DATEOPEN IS NOT NULL AND ds.DATECLOSE >= TRUNC(SYSDATE) AND ds.STOREIDINT not like '131'
        union all
            select to_number(test_auch) as test_auch, NAME
            from test.test2
            where active = 1
       ORDER BY ds.STOREIDINT ASC
       )

Я знаю, в союзе нужно иметь те же столбцы Idk, где проблема В oracle У меня есть эта ошибка:

ORA-01789: query block has incorrect number of result columns
01789. 00000 -  "query block has incorrect number of result columns"
*Cause:    
*Action:
Error at Line: 3 Column: 9

1 Ответ

1 голос
/ 17 марта 2020

Ваш союз находится между этим запросом:

  • "SELECT ds.STOREID, ds.STORENAME, u.ALL_STORES, alus.STORE_ID, ds.STOREIDINT, TO_NUMBER (COALESCE (STORE_ID, '0') )) "

и этот запрос:

  • выберите to_number (AUCHAN_CODE) в качестве AUCHAN_CODE, NAME

Я полагаю, у вас есть скобки места. Кроме того, вы можете сортировать только по столбцам, которые фактически включены в набор объединения. Попробуйте это:

SELECT storeidint as AUCHAN_CODE ,  storename as NAME
FROM (
        SELECT ds.STOREID, ds.STORENAME, u.ALL_STORES, alus.STORE_ID, ds.STOREIDINT , TO_NUMBER(COALESCE(STORE_ID,'0'))
        FROM ARRS.ARRS_USERS  u
        LEFT JOIN DWH_STORES ds ON 1=1 AND ds.activ = 1
        LEFT JOIN  ARRS_LNK_USERS_STORES alus ON u.USER_ID = alus.USER_ID AND ds.STOREIDINT = alus.STORE_ID
        WHERE U.USER_ID = :USER_ID AND ds.DATEOPEN IS NOT NULL AND ds.DATECLOSE >= TRUNC(SYSDATE) AND ds.STOREIDINT not like '131'
     )
union all
select to_number(AUCHAN_CODE) as AUCHAN_CODE , NAME
  from ARRS_FR.NOM_SITES
 where active = 1
 ORDER BY AUCHAN_CODE ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...