Вернуть COUNT строки из двух SELECT, связанных с UNION - PullRequest
0 голосов
/ 26 июня 2018

Я хочу вернуть количество строк со столбцами из двух таблиц, связанных с UNION. Я написал этот запрос

SELECT(
      (SELECT * FROM(
       (SELECT
        ID_COMPTE,
        TITLE,
        LINK,
        DATE_CREAT,
        DATE_MODIF,
        'TF1' AS "TYPE_FICHIER",
        case when DATE_MODIF is null then DATE_CREAT else DATE_MODIF end as LAST_UPDATE FROM FIRST_TABLE FFF where ID_COMPTE= 11111111)

        UNION

        (SELECT
        ID_COMPTE,
        TITLE,
        LINK,
        DATE_CREAT,
        DATE_MODIF,
        'TF2' AS "TYPE_FICHIER",
        case when DATE_MODIF is null then DATE_CREAT else DATE_MODIF end as LAST_UPDATE FROM SECOND_TABLE SSS where ID_COMPTE= 11111111)
        order by LAST_UPDATE desc
        ) parentSelect WHERE ROWNUM BETWEEN 0 AND 2)), count(firstSelect) FROM firstSelect;

Цель состоит в том, чтобы вернуть последние две строки с количеством всех строк таблицы 1 и таблицы 2. Запрос без счетчика работает нормально, только счет вызывает проблему, я не знаю, как его вставить. Я также пытался использовать count () для каждого SELECT и SUM в родительском SELECT, но это не работает.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете использовать #Temp (TempTable). Вставьте или измените в нем строки, которые вы хотите иметь, и, наконец, верните их из хранимой процедуры.

0 голосов
/ 26 июня 2018

Эта концепция должна работать для вас. В основном вы выбираете нужные данные в предложении with. Затем в главном меню выберите свои данные и количество.

WITH
base AS
(
    SELECT 'TEST1' DATA FROM DUAL
    UNION ALL 
    SELECT 'TEST2' DATA FROM DUAL
    UNION ALL
    SELECT 'TEST3' DATA FROM DUAL
)
SELECT (SELECT COUNT(*) FROM base) AS KOUNT, base.*
FROM base
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...