곡할 노릇이네요..
본문
리스트에서 검색 값을
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이 되지 않습니다.
정확한 사정은 모르겠지만
더하기 계산에서 문제가 생겼다면 혹시 형변환(Data Type Cast)에 문제가 있을 수 있으니
$total_aaa = number_format((int)$drow['total_aaa']);로 테스트해 보세요.
결과만 봐서는 모를듯요, sum 구문을 제외하고 나오는 sql 직접실행해보세요.
select wr_16 as total_aaa, wr_8 as total_bbb from 테이블명
그리고 출력되는 wr_16 의 결과 행들을 보세요. 합산값이 맞는지요.
구문상의 잘못된 부분은 없어보입니다.
wr_1 ~ wr_10 그누보드에 기본으로 설정된 필드고 데이타는 문자열인 varchar 형으로 되어있습니다.
wr_16 은 사용자가 임의로 생성한 필드인데요. 일단 데이타 타입부터 확인해보세요.
만약 mysql 에 데이타타입이 varchar 인상태에서 1,234,567 이렇게 들어있으면 이건 문자열이기 때문에 sum을 하게 되면 첫번째 , 이후는 무시가 됩니다. 1,234,567이 1로 되는거죠.