【问题标题】:syntax error by using Join MS-sql使用 Join MS-sql 的语法错误
【发布时间】:2013-06-07 14:21:21
【问题描述】:

数据结构是

TABLE a
Dates            Ticker_Name  Price
02/01/2013    cc1                  ***
02/01/2013    cc2                  ***
02/01/2013    cc3
02/01/2013    tt1
02/01/2013    tt2
02/01/2013    tt3
02/02/2013    cc2
02/02/2013    cc3

TABLE b
Dates                  cc               tt
02/01/2013             cc2              tt1
02/02/2013             cc3              tt2

假设给定日期范围和 b 中的列名,我想首先找到对应的 cc 代码,即 cc2 在 02/01/2013 和 cc3 在 02/02/2013。然后在表a中找到价格。

我写了

select a.Dates, a.Ticker_Name, a.Price
From a
INNER JOIN b 
ON a.Dates = b.Dates
AND a.Ticker_Name = b.CL
WHERE b.Dates BETWEEN #03/01/2013# AND #05/01/2013#

但是 access 2010 说 JOIN 操作有语法错误。有什么想法吗?

【问题讨论】:

  • 数据结构是ticker_name(text) price(number) cc(text) tt(text)

标签: sql ms-access join syntax


【解决方案1】:

表 b 没有名为 CL 的列。你在这里参考它:

INNER JOIN b 
ON a.Dates = b.Dates
AND a.Ticker_Name = b.CL  -- <<== 

【讨论】:

    【解决方案2】:
    SELECT a.dates, 
           a.ticker_name, 
           a.price 
    FROM   a 
           INNER JOIN b 
                   ON a.dates = b.dates 
                      AND a.ticker_name = b.cc 
    WHERE  b.dates BETWEEN #03/01/2013# AND #05/01/2013# 
    

    b.cl 究竟是什么?我在你的结构中没有看到这个?这很可能是导致问题的原因。我已经用 b.cc 替换了上面

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-07
      • 2020-10-28
      • 2018-05-04
      • 2016-04-10
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多