SQLite
有多个数据库,每个时间段(即季度)一个数据库。每个表中的列标题都相同。一些专栏。数据库之间的数据是相同的(例如ID,名称,地址,州,网站等)。在某些列中,列标题相同,但 列中的数据在数据库之间是不同的。 目标是: 从多个数据库中选择多个列,对每个列求和,将输出从000000000转换为$ 000,000,000,000,在输出中添加三个零 (当前数据以000表示)。
以下是有效查询的迭代,以失败的查询结束。 从一个数据库中选择一列。该查询有效。
select dep
From AllReports19921231AssetsAndLiabilities;
output
"11005"
"34396"
"42244"
向此相同查询添加sum(columnName)方法是可行的。
select sum(dep)
From AllReports19921231AssetsAndLiabilities;
results: 3562807353
尝试从多个数据库中求和(columnName)会导致错误。
select sum(dep)
From AllReports19921231AssetsAndLiabilities,
AllReports19930331AssetsAndLiabilities;
error:
ambiguous column name: dep: select sum(dep)
From AllReports19921231AssetsAndLiabilities,
AllReports19930331AssetsAndLiabilities;
使用点表示法将数据库附加到列。查询有效。
select AllReports19921231AssetsAndLiabilities.dep
From AllReports19921231AssetsAndLiabilities;
Output:
"11005"
"34396"
"42244"
但是,当我尝试包括点表示法并将sum(columnName)添加到查询中时,它将失败。
select AllReports19921231AssetsAndLiabilities.sum(dep)
From AllReports19921231AssetsAndLiabilities;
我收到此错误:
near "(": syntax error: select AllReports19921231AssetsAndLiabilities.sum(
编写此查询的正确方法是什么?
最终目标是从多个数据库(Q1,Q2,Q3,Q4)中选择相同的列(例如col1,col2,col3等)。 对每列求和,将三个零加到输出,然后从000000000转换为$ 000,000,000,000 注意:有103个数据库(即每个时间段/每个季度一个数据库)。
select AllReports19921231AssetsAndLiabilities.sum(dep),
AllReports19930331AssetsAndLiabilities.sum(dep),
AllReports19930630AssetsAndLiabilities.sum(dep)
From AllReports19921231AssetsAndLiabilities,
AllReports19930331AssetsAndLiabilities,
AllReports19930630AssetsAndLiabilities;
上面的查询输出错误:
near "(": syntax error: select AllReports19921231AssetsAndLiabilities.sum(
答案 0 :(得分:1)
您的语法错误:
select sum(AllReports19921231AssetsAndLiabilities.dep)
From AllReports19921231AssetsAndLiabilities
答案 1 :(得分:1)
学习使用别名!
os.environ['PATH'] = "/usr/local/cuda-9.0/bin${PATH:+:${PATH}}"
os.environ['LD_LIBRARY_PATH'] = "/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
查询更容易编写和阅读。表别名(完整的表名或缩写)都附加在列名上。在SQL中,这会产生一个限定的列引用。限定条件指定它来自哪个表。
表别名未附加到函数,因为SQL当前不允许表包含函数。