我正在使用ADO.NET Data Provider for SQLite: 1.0.82.0
聚合函数返回错误的结果:
###Table structure###
CREATE TABLE ta85 (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, date INTEGER, _90 REAL, _100 REAL)
###Rows: ###
select * from ta85
id, date, _90, _100
"1","1355480577920","4,4","2"
"2","1355480877929","15","5,2"
"3","1355481177937","26,4","9,4"
------------------
现在,如果我想为每列选择最大值,最小值:
SELECT date,MIN(_90), MAX(_90),MIN(_100), MAX(_100) FROM ta85 WHERE date between 1355480296794 and 1355481366266
返回:
"1355481177937","15","4,4","2","9,4"
列_100
正确但列_90
错误。
感谢您的所有答案。你是对的。
cmd.Parameters.AddWithValue(columname,"");
到
cmd.Parameters.AddWithValue(columname,0.0d);
答案 0 :(得分:1)
您正在使用错误的文字类型将浮点数插入数据库,并且您正在进行字符串比较。使用点而不是逗号。
请记住,SQLite非常loose with types:
SQLite使用更通用的动态类型系统。在SQLite中,值的数据类型与值本身相关联,而不是与其容器相关联。
SQL小提琴here。
答案 1 :(得分:0)
您似乎在比较字符串而不是数字。也许将您的号码格式化为“4.4”而不是“4,4”