2015-01-26 4 views
1

나는 SQLite는 SQL 쿼리 이런 종류의 실현 경우 :sqlite가 합()

SELECT SUM(Column) as TOTAL_DEBIT FROM table_name; 

나는 실제의 추가를 기대하지만 나에게 숫자의 정수 나눗셈의 합을 제공합니다. exemple 들어

:

SELECT SUM(DEBIT) as TOTAL_DEBIT FROM DEBIT 

테이블에 SQL 쿼리는 아래의 것을 제공합니다

TOTAL_DEBIT 
11482,79 

예 테이블 : 나는 이런 종류의 결과를 얻을하고자하는

TOTAL_DEBIT 
11475 

:

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'); 

는 알반

+0

아! 문제는 프랑스 십진 형식에서 제공됩니다. 프랑스에서는 쉼표를 사용하여 실수를 구분합니다. 국제 형식은 마침표를 구분 기호로 사용합니다. – AlbanMar31

+0

숫자가 문자 형식으로 저장되어 있습니까? –

+0

형식으로 이미 마침표'.' (수천, 수백만 등을 표시)가있는 경우 또 다른 어려움이있을 수 있습니다. 이 경우 아래에 설명 된 간단한 'REPLACE()'가 작동하지 않습니다. –

답변

0

에게, 당신의 도움 및 안부에 대한 사전에 당신은 당신이 다음 REPLACE,을 다시 SUM하지 REPLACE 전에 감사?

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

SQL 쿼리가 정상적으로 작동합니다. – AlbanMar31

+0

훌륭함, 훌륭하게 작동했습니다 – Matt

0

숫자가 텍스트로 저장하는 경우에, 당신이 할 수있는 (내가 암시 적 변환에 의존하지 것이다) 다음 : 나는 프랑스의 소수 구분이 다르다는 것을 까맣게 잊고

SELECT REPLACE(SUM(CAST(REPLACE(debit, ',', '.') AS REAL)), '.', ',') AS total_debit 
    FROM debit 
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'); 
+0

Reginal 설정에 전혀 의지해서는 안됩니다. 날짜는 날짜이며 ISO 형식 'yyyy-mm-dd'로 입력해야 지역 설정에 관계없이 인식 할 수 있습니다. 숫자와 동일합니다. 숫자는 문자열이 아닙니다. 따라서 '20 .90 '이나 '29, 90'을 입력하지 말고 29.90을 따옴표없이 입력하십시오. –