我有(2)表(1)为Prices
,另一个是Orders
结合2 SQL SELECT查询转换为一个
价格:
Symbol varchar
Open decimal
High decimal
Low decimal
Date DateTime
订单:
Ticker varchar
Enter decimal
EntDate datetime
Exit decimal
ExtDate datetime
我想要一个查询,给我所有的特定日期时间范围的定价数据和所有的o该符号为同一日期时间范围rders:
SELECT
T1.Symbol
, P1.Open
, P1.High
, P1.Low
, P1.Close
, P1.Date
, O1.EntDate
, O1.Enter
, O1.ExtDate
, O1.Exit
FROM Prices AS P1
INNER JOIN ORDERS AS O1 ON O1.Ticker = P1.Symbol
WHERE P1.Date < CONVERT(datetime, '01/01/2012 10:00 AM')
显然,这是行不通的,我得到重复价格数据的每一行订单多个列表。
例价格表
Sym Open High Low Close Date
ABC 1 3 1 2 1/1/2011 10:01 AM
ABC 1 3 1 2 1/1/2011 10:02 AM
ABC 1 3 1 2 1/1/2011 10:03 AM
ABC 1 3 1 2 1/1/2011 10:04 AM
ABC 1 3 1 2 1/1/2011 10:05 AM
ABC 1 3 1 2 1/1/2011 10:06 AM
ABC 1 3 1 2 1/1/2011 10:07 AM
ABC 1 3 1 2 1/1/2011 10:08 AM
ABC 1 3 1 2 1/1/2011 10:09 AM
ABC 1 3 1 2 1/1/2011 10:10 AM
实施例的订单表
Sym Enter EntDate Exit ExtDate
ABC 1 1/1/2011 10:-00 3 1/1/2011 10:02 AM
ABC 1 1/1/2011 10:-03 3 1/1/2011 10:04 AM
示例输出用于价格和订单查询与日期和EntDate < 1/1/2011上午10点07和符号= ABC
Sym Open High Low Close Date Enter EntDate Exit ExtDate
ABC 1 3 1 2 1/1/2011 10:01 AM 1 1/1/2011 10:-00 3 1/1/2011 10:02 AM
ABC 1 3 1 2 1/1/2011 10:02 AM 1 1/1/2011 10:-03 3 1/1/2011 10:04 AM
ABC 1 3 1 2 1/1/2011 10:03 AM
ABC 1 3 1 2 1/1/2011 10:04 AM
ABC 1 3 1 2 1/1/2011 10:05 AM
ABC 1 3 1 2 1/1/2011 10:06 AM
ABC 1 3 1 2 1/1/2011 10:07 AM
看起来你需要在'O1.EntDate'添加额外的过滤器或'O1.ExtDate'到限制范围,但不知道你的意思是什么“我得到多个价格数据行重复的订单列表”以及为什么这是一个问题。预计与加入。也许提供一些示例数据和期望的结果。 –
我会给你上面的示例输出... – CraigJSte
我会给你上面的示例输出...我尝试了太多的数据来填充窗口..本质上问题是订单数据重复自身,它提供了重复的数据一个问题。也许连接将不会有一张桌子充满价格数据,但只有少量记录/线与订单信息。 – CraigJSte