곡할 노릇이네요.. 채택완료
리스트에서 검색 값을
if ($sca || $stx || $t_start || $t_end){
if( strpos($sql_search, 'where')===false) $sql_search =' where '.$sql_search;
$sql = " select sum(wr_16) as total_aaa, sum(wr_8) as total_bbb from $write_table $sql_search ";
}else{
$sql = " select sum(wr_16) as total_aaa, sum(wr_8) as total_bbb from $write_table ";
}
답변 4개
wr_8과 wr_16 필드의 데이터유형이 숫자형인지 문자형인지 확인부터 해보세요.
숫자형이라면 모두 정상적으로 나와야 하는 사항인데....
문자형이라면 3자리 이상의 데이타에 ","가 들어가 있는지 확인해보십시오.
문자형 데이타 필드에 숫자형값을 넣은 상태에서 ","가 들어가 있으면 정상적으로 sum이 되지 않습니다.
답변에 대한 댓글 4개
[code]select sum(replace(wr_16, ',', '')) as total_aaa, sum(replace(wr_8, ',', '')) [/code]
입력된 값을 db에서 몽땅 컴마 제거하는 방법을 뒤져볼려고 했는데...
제거할 필요는 없기 때문에 알려주신 방법으로 해결되었습니다. 좋은 하루되세요~
댓글을 작성하려면 로그인이 필요합니다.
구문상의 잘못된 부분은 없어보입니다.
wr_1 ~ wr_10 그누보드에 기본으로 설정된 필드고 데이타는 문자열인 varchar 형으로 되어있습니다.
wr_16 은 사용자가 임의로 생성한 필드인데요. 일단 데이타 타입부터 확인해보세요.
만약 mysql 에 데이타타입이 varchar 인상태에서 1,234,567 이렇게 들어있으면 이건 문자열이기 때문에 sum을 하게 되면 첫번째 , 이후는 무시가 됩니다. 1,234,567이 1로 되는거죠.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
결과만 봐서는 모를듯요, sum 구문을 제외하고 나오는 sql 직접실행해보세요.
select wr_16 as total_aaa, wr_8 as total_bbb from 테이블명
그리고 출력되는 wr_16 의 결과 행들을 보세요. 합산값이 맞는지요.
답변에 대한 댓글 2개
조건은 동일한데 너무 이상해서 다시 디비 확인해보니..wr_16은 천단위 컴마가 들어가 저장되어 있네요..
댓글을 작성하려면 로그인이 필요합니다.
정확한 사정은 모르겠지만
더하기 계산에서 문제가 생겼다면 혹시 형변환(Data Type Cast)에 문제가 있을 수 있으니
$total_aaa = number_format((int)$drow['total_aaa']);로 테스트해 보세요.
답변에 대한 댓글 2개
내용이나 조건은 동일한 상황인데 뒤에 거는 잘되는데 앞에거는 잘린상태에서 합산되는지 모르겠어요,,ㅋ
실력은 앙되그..미티.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인