我有两张桌子:Incomings和Expenditures。 Incomings拥有IncDate,IncCost和Expenditures拥有ExpDate和ExpCost。 IncCost和ExpCost存储为double,IncDate和ExpDate存储为字符串dd / MM / yyyy(我知道不好的做法)。我正在尝试合并IncDate和ExpDate,并总结每天的成本。我正在尝试将此数据添加到数据表中,以便我可以使用它创建图表。我得到的错误是"关键字' AS'"附近的语法不正确尽管如此,它并没有多大用处。 这是我用来尝试创建这个数据表的代码
import sys, collections
raw_input = sys.stdin.readline
n, m, k = map(int, raw_input().split())
dict1 = collections.defaultdict(set)
ans = {i:[set([i])for j in xrange(k)]for i in xrange(1, n+1)}
for i in xrange(m):
x, y = map(int, raw_input().split())
dict1[x].add(y)
dict1[y].add(x)
for point in dict1:
ans[point][0].update(dict1[point])
for i in xrange(1, k):
for point in dict1:
for neighbour in dict1[point]:
ans[point][i].update(ans[neighbour][i-1])
for i in xrange(1, n+1):
print len(ans[i][-1])
非常感谢任何帮助。提前干杯
答案 0 :(得分:1)
错误在于您在ON子句中使用的“AS FinalDate”语句(在下面的查询中以粗体显示)。不知道为什么As子句突然在ON子句中爆发了。 SQL中的ON子句不允许对列进行别名(使用AS关键字)。尝试修复它以解决您的问题。如果FinalDate是计算字段,那么它应该出现在SELECT子句中。
SELECT CONVERT(DATETIME, IncDate, 103) AS IncDate, SUM(IncCost) AS IncCost, CONVERT(DATETIME, ExpDate, 103) AS ExpDate, SUM(ExpCost) AS ExpCost FROM Incomings i FULL OUTER JOIN Expenditures e ON i.IncDate = e.ExpDate AS FinalDate GROUP BY CONVERT(DATETIME, FinalDate, 103) ORDER BY CONVERT(DATETIME, FinalDate, 103)
希望这有帮助!