объединить два запроса, используя CTE - PullRequest
0 голосов
/ 12 марта 2019

У меня есть два запроса

Запрос 1: извлекает последние две даты конца месяца из выходных данных Date Dimension как

ActualDate
28-02-2019
30-01-2019

Запрос 2: Использует поле Date в предложении where ...

E.g. All the data at Date D1. 

Как я могу рекурсивно использовать вывод запроса 1 в запросе 2, чтобы

Комбинированный вывод был

All Data at Date "28-02-2019" Unionall 
All Data at Date "30-01-2019"

Любая помощь будет оченьпризнателен.

Проще говоря, запрос 2 такой же, как и ниже, и я хочу получить результаты этого запроса за последние 3 месяца с помощью рекурсивного CTE путем изменения фактической даты

select     SL.InvoiceID, 
           sum(SL.Balance) as Balance,

    from FactableBalance as SL
    inner join DateDimension as DT1 
       on DT1.ActualDate = '2019-02-28 00:00:00.000'
    where SL.LedgerAccountType = 'Credit'
      and DT1.ID >= BalanceOpenDateID
      and DT1.ID < BalanceCloseDateID 
    group by SL.InvoiceID

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Вы, кажется, хотите что-то вроде этого:

with dates as (
      . . .
     )
select . . .
from dates left join
     <something goes here> s
     on s.<whatever> ? d.date

Это немного расплывчато, но вы можете использовать join, чтобы "заполнить" искомое сравнение.

0 голосов
/ 12 марта 2019

попробуйте, как показано ниже

   with cte1
    as
    (select * from query1
    ), cte2 as
    (
    select * from query2
    ) select * from cte1 union all
    select * from cte2
...