【发布时间】:2018-12-02 12:17:35
【问题描述】:
还是 SQL 的新手。我已经四处寻找答案,我找到的例子,我已经镜像了我的查询,看起来像例子,但这个查询仍然不起作用。我要做的就是加入两个子查询,但是这两个子查询都包含一个子查询。我收到以下错误:
消息 156,级别 15,状态 1,第 26 行 关键字“On”附近的语法不正确。
这是查询,请帮忙,谢谢。
Select *
From
(
Select * From(
Select x.ID, x.Date, x.USOHist, x.OVXHist,
Abs(Cast((((x.USOHist / NullIf((y.USOHist),0))-1)*100) as Decimal(10,2))) AS '%USOH',
Abs(Cast((((x.OVXHist / NullIf((y.OVXHist),0))-1)*100) as Decimal(10,2))) AS '%OVXH'
From (Select a.Date as aDate, Max(b.Date) As aPrevDate From USO_OVX_Hist a Inner Join USO_OVX_Hist b on a.Date > b.Date
Group By a.Date) Sub1
Inner Join USO_OVX_Hist x on Sub1.aDate = x.Date
Inner Join USO_OVX_Hist y on Sub1.aPrevDate = y.Date
) Sub2
Inner Join
(
Select * From(
Select z.ID, z.ID2, z.Date, z.USO as USOP, z.OVX as OVXP,
Cast(((z.USO / NullIf((q.USO),0)- 1) * 100) as Decimal(10,2)) AS '%USOP',
Cast(((z.OVX / NullIf((q.OVX),0)- 1) * 100) as Decimal(10,2)) AS '%OVXP'
From (Select c.Date as cDate, Max(d.Date) As cPrevDate From USO_OVX_Price c Inner Join USO_OVX_Price d on c.Date > d.Date
Group By c.Date) Sub3
Inner Join USO_OVX_Price z on Sub3.cDate = z.Date
Inner Join USO_OVX_Price q on Sub3.cPrevDate = q.Date
) Sub4
On Sub2.Date = Sub4.Date
【问题讨论】:
标签: sql sql-server subquery inner-join