法语十进制格式数的sqlite sum()

时间:2015-01-26 14:39:03

标签: sql sqlite sum decimal-point

当我意识到这种类型的SQLite SQL查询时:

SELECT SUM(Column) as TOTAL_DEBIT FROM table_name;

我希望增加真实,但它给出了整数除数的总和。

例如:

SELECT SUM(DEBIT) as TOTAL_DEBIT FROM DEBIT

下表中的SQL查询提供了:

TOTAL_DEBIT
11475

我希望得到这样的结果:

TOTAL_DEBIT
11482,79

示例表:

   DROP TABLE IF EXISTS "DEBIT";
   CREATE TABLE "DEBIT" ("DATE" DATETIME NOT NULL , "DEBIT" REAL NOT NULL );
   INSERT INTO "DEBIT" VALUES('23/12/13','29,90');
   INSERT INTO "DEBIT" VALUES('23/12/13','304,00');
   INSERT INTO "DEBIT" VALUES('15/01/14','1245,48');
   INSERT INTO "DEBIT" VALUES('21/01/14','304,00');
   INSERT INTO "DEBIT" VALUES('23/01/14','30,00');
   INSERT INTO "DEBIT" VALUES('28/01/14','129,10');
   INSERT INTO "DEBIT" VALUES('31/01/14','32,10');
   INSERT INTO "DEBIT" VALUES('21/02/14','30,00');
   INSERT INTO "DEBIT" VALUES('21/02/14','304,00');
   INSERT INTO "DEBIT" VALUES('17/03/14','117,66');
   INSERT INTO "DEBIT" VALUES('21/03/14','30,00');
   INSERT INTO "DEBIT" VALUES('21/03/14','304,00');
   INSERT INTO "DEBIT" VALUES('02/04/14','175,62');
   INSERT INTO "DEBIT" VALUES('22/04/14','304,00');
   INSERT INTO "DEBIT" VALUES('23/04/14','30,00');
   INSERT INTO "DEBIT" VALUES('30/04/14','32,10');
   INSERT INTO "DEBIT" VALUES('21/05/14','304,00');
   INSERT INTO "DEBIT" VALUES('22/05/14','2838,00');
   INSERT INTO "DEBIT" VALUES('22/05/14','30,00');
   INSERT INTO "DEBIT" VALUES('30/05/14','145,41');
   INSERT INTO "DEBIT" VALUES('23/06/14','30,00');
   INSERT INTO "DEBIT" VALUES('23/06/14','304,00');
   INSERT INTO "DEBIT" VALUES('25/06/14','112,48');
   INSERT INTO "DEBIT" VALUES('21/07/14','304,00');
   INSERT INTO "DEBIT" VALUES('22/07/14','30,00');
   INSERT INTO "DEBIT" VALUES('24/07/14','1245,48');
   INSERT INTO "DEBIT" VALUES('25/07/14','127,68');
   INSERT INTO "DEBIT" VALUES('31/07/14','32,10');
   INSERT INTO "DEBIT" VALUES('12/08/14','23,89');
   INSERT INTO "DEBIT" VALUES('21/08/14','30,00');
   INSERT INTO "DEBIT" VALUES('21/08/14','304,00');
   INSERT INTO "DEBIT" VALUES('10/09/14','480,00');
   INSERT INTO "DEBIT" VALUES('22/09/14','30,00');
   INSERT INTO "DEBIT" VALUES('22/09/14','304,00');
   INSERT INTO "DEBIT" VALUES('29/09/14','131,37');
   INSERT INTO "DEBIT" VALUES('21/10/14','30,00');
   INSERT INTO "DEBIT" VALUES('21/10/14','304,00');
   INSERT INTO "DEBIT" VALUES('24/10/14','96,00');
   INSERT INTO "DEBIT" VALUES('31/10/14','32,50');
   INSERT INTO "DEBIT" VALUES('21/11/14','304,00');
   INSERT INTO "DEBIT" VALUES('24/11/14','30,00');
   INSERT INTO "DEBIT" VALUES('28/11/14','143,92');
   INSERT INTO "DEBIT" VALUES('22/12/14','30,00');
   INSERT INTO "DEBIT" VALUES('22/12/14','304,00');

提前感谢您的帮助和问候, 阿尔

3 个答案:

答案 0 :(得分:0)

你能不能REPLACE ,之前SUM重新REPLACE吗?

SELECT REPLACE(SUM(REPLACE(DEBIT,',','.')),'.',',') AS TOTAL_DEBIT 
FROM DEBIT

答案 1 :(得分:0)

如果数字存储为文本,那么您可以执行以下操作(我不依赖于隐式转换):

SELECT REPLACE(SUM(CAST(REPLACE(debit, ',', '.') AS REAL)), '.', ',') AS total_debit
  FROM debit

答案 2 :(得分:0)

我忘记了法语小数点分隔符与国际十进制系统不同:当逗号被一个点替换时,它的效果非常好:

SQL查询:

SELECT ROUND(SUM(DEBIT),2) as amount FROM DEBIT;

对这个SQL脚本非常有用:

DROP TABLE IF EXISTS "DEBIT";
CREATE TABLE "DEBIT" ("DATE" DATETIME NOT NULL , "DEBIT" REAL NOT NULL );
INSERT INTO "DEBIT" VALUES('23/12/13','29.90');
INSERT INTO "DEBIT" VALUES('23/12/13','304.00');
INSERT INTO "DEBIT" VALUES('15/01/14','1245.48');
INSERT INTO "DEBIT" VALUES('21/01/14','304.00');
INSERT INTO "DEBIT" VALUES('23/01/14','30.00');
INSERT INTO "DEBIT" VALUES('28/01/14','129.10');
INSERT INTO "DEBIT" VALUES('31/01/14','32.10');
INSERT INTO "DEBIT" VALUES('21/02/14','30.00');
INSERT INTO "DEBIT" VALUES('21/02/14','304.00');
INSERT INTO "DEBIT" VALUES('17/03/14','117.66');
INSERT INTO "DEBIT" VALUES('21/03/14','30.00');
INSERT INTO "DEBIT" VALUES('21/03/14','304.00');
INSERT INTO "DEBIT" VALUES('02/04/14','175.62');
INSERT INTO "DEBIT" VALUES('22/04/14','304.00');
INSERT INTO "DEBIT" VALUES('23/04/14','30.00');
INSERT INTO "DEBIT" VALUES('30/04/14','32.10');
INSERT INTO "DEBIT" VALUES('21/05/14','304.00');
INSERT INTO "DEBIT" VALUES('22/05/14','2838.00');
INSERT INTO "DEBIT" VALUES('22/05/14','30.00');
INSERT INTO "DEBIT" VALUES('30/05/14','145.41');
INSERT INTO "DEBIT" VALUES('23/06/14','30.00');
INSERT INTO "DEBIT" VALUES('23/06/14','304.00');
INSERT INTO "DEBIT" VALUES('25/06/14','112.48');
INSERT INTO "DEBIT" VALUES('21/07/14','304.00');
INSERT INTO "DEBIT" VALUES('22/07/14','30.00');
INSERT INTO "DEBIT" VALUES('24/07/14','1245.48');
INSERT INTO "DEBIT" VALUES('25/07/14','127.68');
INSERT INTO "DEBIT" VALUES('31/07/14','32.10');
INSERT INTO "DEBIT" VALUES('12/08/14','23.89');
INSERT INTO "DEBIT" VALUES('21/08/14','30.00');
INSERT INTO "DEBIT" VALUES('21/08/14','304.00');
INSERT INTO "DEBIT" VALUES('10/09/14','480.00');
INSERT INTO "DEBIT" VALUES('22/09/14','30.00');
INSERT INTO "DEBIT" VALUES('22/09/14','304.00');
INSERT INTO "DEBIT" VALUES('29/09/14','131.37');
INSERT INTO "DEBIT" VALUES('21/10/14','30.00');
INSERT INTO "DEBIT" VALUES('21/10/14','304.00');
INSERT INTO "DEBIT" VALUES('24/10/14','96.00');
INSERT INTO "DEBIT" VALUES('31/10/14','32.50');
INSERT INTO "DEBIT" VALUES('21/11/14','304.00');
INSERT INTO "DEBIT" VALUES('24/11/14','30.00');
INSERT INTO "DEBIT" VALUES('28/11/14','143.92');
INSERT INTO "DEBIT" VALUES('22/12/14','30.00');
INSERT INTO "DEBIT" VALUES('22/12/14','304.00');