2016-08-03 5 views
0

나는 단순히 열을 더하고 싶습니다. 나는이Laravel Eloquent sum throwing error

$money = Income::select(DB::raw('sum(money)'))->get(); 

을 피곤이 코드

$money = Income::sum('money'); 

을 사용하지만 오류를 던지고. 데이터베이스로 postgresql을 사용하고 있습니다. 오류 메시지 :

SQLSTATE[42883]: Undefined function: 7 ERROR: function sum(character varying) does not exist 
LINE 1: select sum("money") as aggregate from "incomes" 
^ 
HINT: No function matches the given name and argument types. You might need to add explicit type casts. (SQL: select sum("money") as aggregate from "incomes") 

내 테이블 :

incomes 

+----+---------+-------+ 
| id | orderid | money | 
+----+---------+-------+ 
| 1 | 2343 | 23 | 
| 2 | 2344 | 55 | 
+----+---------+-------+ 
+0

데이터베이스 스키마를 게시 할 수 있습니까? – Jaimin

+0

@Jaimin이 (가) –

+0

게시물을 편집했습니다. 스키마가 아니므로 게시 할 수 있습니까? 소득표를 만드는 마이그레이션 파일을 기반으로합니까? 또는 psql을 사용하여'\ d {소득 표 이름}'을 (를) 실행할 수 있고 결과를 공유 할 수 있습니까? –

답변

2

를 사용하여 합계를 얻을 수 있으며, sum 메서드는 varcha를 사용하지 않습니다. r (문자 변화). .

Income::select(DB::raw('sum(cast(money as double precision))'))->get() 

참고이 의지가 : 그것은 전적으로 숫자 값으로 구성의 나 불구하고 money 열이 숫자 데이터 형식 (아닌 것 소리

는이 문제를 해결하려면 숫자 데이터 형식으로 값을 캐스팅 (가능하다면) 데이터베이스 스키마를 변경하여 가능한 한 정수로 저장하고 데이터베이스에 센트로 저장할 수 있습니다. 즉, 데이터베이스의 1000은 $ 10.00을 나타냅니다.

+0

thanks man. worked :) –

0

당신은 당신의 오류 메시지에 따르면이

$money = DB::table('incomes')->sum('money'); 

확인이 링크 https://laravel.com/docs/5.0/queries

+0

. 같은 오류가 발생했습니다 : ( –