我正在努力解决关于MS-Access的以下问题:

UPDATE
(
    (
    DWH_TICKERS_LIST
    INNER JOIN  ODS_PAGE_HEADER_INFO ON ODS_PAGE_HEADER_INFO.TICKER_CODE = DWH_TICKERS_LIST.TICKERS_LIST__TICKER
    ) 
INNER JOIN SECTOR ON SECTOR.NAME = DWH_TICKERS_LIST.TICKERS_LIST__NAME
)
SET 
    DWH_TICKERS_LIST.TICKERS_LIST__ISIN_CODE             = ODS_PAGE_HEADER_INFO.ISIN_CODE
,   DWH_TICKERS_LIST.TICKERS_LIST__CURR                  = ODS_PAGE_HEADER_INFO.CURR
,   DWH_TICKERS_LIST.TICKERS_LIST__SECTOR_FK             = SECTOR.SECTOR_PK
,   DWH_TICKERS_LIST.TICKERS_LIST__TOTALVOLUME           = ODS_PAGE_HEADER_INFO.TOTALVOLUME
,   DWH_TICKERS_LIST.TICKERS_LIST__ELIGIBILITY_SRD       = ODS_PAGE_HEADER_INFO.ELIGIBILITY_SRD
,   DWH_TICKERS_LIST.TICKERS_LIST__ELIGIBILITY_PEA       = ODS_PAGE_HEADER_INFO.ELIGIBILITY_PEA
,   DWH_TICKERS_LIST.TICKERS_LIST__ELIGIBILITY_22H       = ODS_PAGE_HEADER_INFO.ELIGIBILITY_22H
,   DWH_TICKERS_LIST.DWH_TICKERS_LIST__UPDATE_DATETIME   = Now()

我得到了that one的启发. 但是我得到了这个错误:

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('07002', '[07002] [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu. (-3010) (SQLExecDirectW)')

即参数太少,预期为1.

你知道怎么改正这个错误吗?

推荐答案

Name在某些情况下是一个reserved word,尽管它没有被列在Access SQL reserved words中.

不过,试着把它放在括号里:SECTOR.[NAME]

JOIN列表周围的外圆括号是不需要的(但可能不会造成伤害).

如果[NAME]没有帮助,最有可能的原因是字段名称中的某个地方有一个错别字.

您可以通过对表名使用短别名来提高可读性:

UPDATE
    (
    DWH_TICKERS_LIST AS tl
    INNER JOIN  ODS_PAGE_HEADER_INFO AS hi 
      ON hi.TICKER_CODE = tl.TICKERS_LIST__TICKER
    ) 
    INNER JOIN SECTOR AS s ON s.[NAME] = tl.TICKERS_LIST__NAME

SET 
    tl.TICKERS_LIST__ISIN_CODE             = hi.ISIN_CODE
,   tl.TICKERS_LIST__CURR                  = hi.CURR
,   tl.TICKERS_LIST__SECTOR_FK             = s.SECTOR_PK
etc.

Sql相关问答推荐

获取每个帖子的匹配关键字列表

使用`lag()`获取上一个时间戳

Django将字符串筛选为整数?

SQL Select 最小优先级

合并分层表SQL中的第一个非空、变化的空位置

比较SQL中以逗号分隔的字符串

优化Postgres搜索未知长度的子串

如何在Postgres中为单值输入多行?

如何将insert语句重复n次使一个值递增?

不存在记录的国外关键点

如何使用聚合连接两个表

Postgresql:在链接表中判断相关表中插入值的条件

如何在 SQL 中将两行(或多行)jsonb 数组合并为一行

清理 XML 数据

每次计数器增加时通过运行总重置进行分组

获取所有用户的第一次和最后一次发货以及到达日期

获取 SQL Server 中每一行的两个-之间的文本

如何在 DAX 中通过 Window 函数应用订单

如何优化sql请求?

SQL:有没有办法根据另一列的数据细节过滤和形成另一列?