Присоединяется к подзапросам - PullRequest
0 голосов
/ 28 июня 2018

Я все еще новичок в SQL; пожалуйста, избавь меня. У меня проблема с попыткой присоединить таблицу или другое представление к существующему запросу ниже.

Последний вопрос, который я задал, касается присоединения к двум подзапросам и предоставления им псевдонима, чтобы объединение работало (что-то, что я до сих пор не понимаю?) Я пытаюсь присоединить таблицу и другой подзапрос к запрос ниже. Но я не совсем уверен, как мне продолжить добавлять к нему подзапросы.

Я не очень понимаю, как псевдонимы позволили объединить подзапросы, и если я добавлю еще один подзапрос, тогда я добавлю еще один псевдоним?

Буду признателен за любую помощь, которую вы сможете оказать. Заранее извиняюсь за форматирование: /

Select 
    Sub4.DT as Date, Sub2.USOH, Sub2.USOHP, Sub2.OVXH, Sub2.OVXHP, Sub4.USOPP, Sub4.OVXPP 
From
    (Select 
         * 
     From
         (Select 
              x.ID, x.Date, x.USOH, x.OVXH, convert(varchar, x.Date, 1) AS DT,
              Abs(Cast((((x.USOH / NullIf((y.USOH), 0)) - 1) * 100) AS Decimal(10, 2))) AS USOHP2,
              Format(Abs(((x.USOH / NullIf((y.USOH), 0))) - 1), 'P') AS USOHP,
              Abs(Cast((((x.OVXH / NullIf((y.OVXH), 0)) - 1) * 100) AS Decimal(10, 2))) AS OVXHP2,
              Format(Abs(((x.OVXH / NullIf((y.OVXH),0)))-1),'P') AS OVXHP
          From  
              (Select 
                   a.Date as aDate, Max(b.Date) As aPrevDate 
               From 
                   MACDHistogram A 
               Inner Join 
                   MACDHistogram b on a.Date > b.Date 
               Group By a.Date) Sub1 -- Group Date > Previous Date SUB1
          Inner Join 
              MACDHistogram x on Sub1.aDate = x.Date
          Inner Join 
              MACDHistogram y on Sub1.aPrevDate = y.Date) T2) Sub2 --Histogram Percent SubQuery SUB2
Inner Join
    (Select 
         * 
     From
         (Select 
              z.ID, z.ID2, z.Date, z.USO as USOP, z.OVX as OVXP, 
              convert(varchar, z.Date, 1) as DT,
              Cast(((z.USO / NullIf((q.USO),0)- 1) * 100) as Decimal(10,2)) AS USOPP2,
              Format(((z.USO / NullIf((q.USO),0))-1),'P') AS USOPP,
              Cast(((z.OVX / NullIf((q.OVX),0)- 1) * 100) as Decimal(10,2)) AS OVXPP2,
              Format(((z.OVX / NullIf((q.OVX),0))-1),'P') AS OVXPP
          From  
              (Select 
                   c.Date as cDate, Max(d.Date) As cPrevDate 
               From 
                   Prices C 
               Inner Join 
                   Prices d on c.Date > d.Date Group By c.Date) Sub3 -- Group Date > Previous Date SUB3
          Inner Join 
              Prices z on Sub3.cDate = z.Date
          Inner Join 
              Prices q on Sub3.cPrevDate = q.Date) T4) Sub4  -- Price Percent Subquery SUB4
              On Sub2.Date = Sub4.Date
Order By 
    sub4.Date Desc
...