2014-11-25 77 views
1

在这种情况下可以使用SQLITE DDL(LineNum是AUTO INCREMENT列是TransDate列的一部分)。如果我在新的每日交易条目中插入行,自动增量值将被重新使用。 AUTO INCREMENT列(LineNum)将在插入新事务时从值1生成序列。见下面的例子。使用自动增量的SQLITE DDL

TransDate LineNum GL_Number 
20141011 1 2163370000 
20141011 2 2163370000 
20141011 3 2163370000 
20141011 4 2163370000 
20141011 5 2163370000 
20141011 6 2163370000 
20141011 7 2163370000 
20141011 8 2163370000 
20141011 9 2163370000 
20141011 10 2163370000 
20141012 1 2163370000 
20141012 2 2163370000 
20141012 3 2163370000 
20141012 4 2163370000 
20141012 5 2163370000 
20141012 6 2163370000 
20141012 7 2163370000 
20141012 8 2163370000 
20141012 9 2163370000 
20141012 10 2163370000 

回答

1

不;在SQLite中,autoincrementing仅在列单独是主键时才有效。

要计算每日的行号,你就必须算多少行的那一天,已经是:

SELECT COUNT(*) + 1 
FROM MyTable 
WHERE TransDate = 20141013 
+0

对不起,我不能与替代解决方案清楚。如果你可以请指导你如何去解决这个问题。 – 2014-11-25 23:13:34

+0

该查询计算该日期下一次插入所使用的行号。 – 2014-11-26 08:29:49

+0

数字记录可以在给定的日期变化。假设此查询计算了计数函数中的14条记录+ 1是15.这意味着LineNum从15开始,在该日期的下一次插入。我希望它重用从1开始的LineNum。我现在不在你身边。 – 2014-11-26 21:44:02