【发布时间】:2015-10-23 13:57:45
【问题描述】:
我正在尝试使用 3 个表编写一个查询。
我将使用的表格及其列是:
Sec – ID, Symbol
Hss – Code, HDate, Holiday
Fddd – ID, Date, Price
给定一个符号AAA,我需要从第一个表中获取 ID 并将其与第三个表中的 ID 匹配。第二个表的日期必须与第三个表的日期匹配,条件为Code=1 和Holiday=1。
第二个和第三个表格中的日期按升序排列,最近的日期在底部。我想得到50 day 和200 day 的平均价格。表格中的日期按升序排列,因此我想将其降序并选择top 50 和200 以获得平均价格。
到目前为止,我只能得到一个平均值。我无法添加第二个SELECT TOP 50 或在第二个avg() 中添加subquery。
SELECT AVG(TwoHun)TwoHunAvg --, AVG(Fifty) AS FiftyAvg
FROM (SELECT TOP 200 Fddd.price AS TwoHun --, TOP 50 Fddd.price AS Fifty
FROM Sec
JOIN Fddd
ON Sec.ID = Fddd.ID AND Sec.symbol = 'AAA'
JOIN Hss
ON Fddd.date = Hss.Hdate AND Hss.Code = 1 AND Hss.Holiday = 1
ORDER BY Fddd.Date DESC) AS tmp;
提前致谢!
【问题讨论】:
-
您可能需要提及您正在使用的数据库。
-
拥有样本数据以便能够进行测试也将有所帮助!您的问题也有点混乱,请提供 2 个表格。一种是数据,另一种是您想要的结果。
-
@mustaccio 我认为是 ms 访问或 SQL 服务器。参考:w3schools.com/sql/sql_top.asp