2014-11-25 84 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