我正在尝试使用Python/pyodbc将一些csv数据插入到Access 2007数据库中.我在Access中测试了一个工作追加查询,它选择了标题和一行值.
INSERT INTO AssetDetails ( [Reporting Account Number], [As Of Date], [Asset Type], [Security Description 1], [Shares/Par], [Base Price], [Base Cost], CUSIP, Ticker, ISIN, SEDOL )
VALUES ("ABCD99020002", "1/31/2010", "CASH & CASH EQUIVALENTS", "INTEREST RECEIVABLE", "0.000", "1.00", "1,171,069.04", "", "", "", "");
Run Code Online (Sandbox Code Playgroud)
在pyodbc中运行此查询会产生:
ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] Invalid bracketing of name '[0.000]'. (-1002) (SQLExecDirectW)")
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我认为有可能是引起麻烦的数字周围的引号.我转到了以下查询:
SQL = '''INSERT INTO AssetDetails([Reporting Account Number], [As Of Date], [Asset Type], [Security Description 1], [Shares/Par], [Base Price], [Base Cost], CUSIP, …Run Code Online (Sandbox Code Playgroud) 我有一个查询,显示项目的名称和重量相对于整个项目桶.这些桶是分类的,所以我想将总重量转换为子类别重量.
相对于整个桶的重量的预调整如下.
InvestmentName Weight
Ac 0.01236194
AG 0.04102656
Ca 0.02483226
DF 0.02951128
Ea 0.003295817
GE 0.005415929
Run Code Online (Sandbox Code Playgroud)
这是我在Excel中快速完成的预期结果,我现在无法通过查询实现.根据需要,数字总和为1:
InvestmentName AdjWeight
Ac 0.106162299
AG 0.352329321
Ca 0.213255347
DF 0.253437998
Ea 0.028303932
GE 0.046511104
Run Code Online (Sandbox Code Playgroud)
基本上,这里的任务是将每个条目除以SUM上面第一个表中的所有权重.
我试过了:
SELECT InvestmentName, Weight / SUM(Weight) AS AdjWeight FROM Records WHERE = "..."
Run Code Online (Sandbox Code Playgroud)
和Access表示不能通过汇总来划分条目.有没有办法将SUM(Weight)作为变量存储在查询的某个地方,并在每个单独的权重上使用它?