채택완료

갯수구하는 쿼리좀 봐 주세요.

2017-10-30 (월) 19:40:17 3,705


저는 등록된 리스트(여러개일수도 있음) 내에서  wr_0 ~ wr_20  입력된 값의 갯수를 구하고자 합니다. 
그림 파일을 보시면 이해하실수 있을겁니다. 
그냥 wr_0 에서 wr_20 중에  값이 입력된것만 갯수를 구하는 것입니다. ( 계산이 아님 )

아래와 같이 하니 자꾸 한줄의 갯수인  5( $count)만 나옵니다.  8이 나와야 하는데요..ㅜㅜ

Copy
$wr_goal_month="10";

 

$query2 = "select * from g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";  
                    $result2 = sql_query($query2); 
                    $row2 = sql_fetch_array($result2);

                    

                    $k="0";
                    $count="0";
                    $stack_goal_total="0";
                    for($k=1; $k<=$wr_goal_month; $k++){
                         
                            if($row2['wr_goal_'.$k]!==""){ // 값이 들어있는것만 찾아낸다.
                              $count++;
                             }

                    }

                    echo $count;
|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트

//루프를 돌리시면 됩니다

Copy
$wr_goal_month="10";
 
$query2 = "select * from g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";  
$result2 = sql_query($query2); 
while($row2 = sql_fetch_array($result2))
{
    
    $k="0";
    $count="0";
    $stack_goal_total="0";
    for($k=1; $k<=$wr_goal_month; $k++){
     
        if($row2['wr_goal_'.$k]!==""){ // 값이 들어있는것만 찾아낸다.
          $count++;
         }
    }
  }
  echo $count;

답변에 대한 댓글 2개

onlymilk47님 먼저 감사합니다.

제가 잘못해서 그런건지.. 그냥 숫자 0만 나오네요... 쿼리문은 이상이 없는듯하고 8이 나와야 정상인데...
난감하네요.ㅜㅜ
온리밀크님 $count="0"을 루프 밖으로 빼니 제대로 나옵니다.
감사합니다.^^

쿼리로 쉽게 구현하는 방법

Copy
$query2 = "select 
if(count(wr_1) > 0,1,0)
+ if(count(wr_2) > 0,1,0)
+ if(count(wr_3) > 0,1,0)
+ if(count(wr_4) > 0,1,0)

...

+ if(count(wr_19) > 0,1,0)

+ if(count(wr_20) > 0,1,0)

 cnt 

 g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";

$row = sql_fetch($query2);

$count = $row[cnt];

echo $count;

로 구현가능하고

위의 문장을 굳이 줄인다면

Copy
$query2 = "select 
if(count(wr_1) > 0,1,0)";

for ($i = 2; $i <= 20; $i++)  {

    $query2 .= "+ if(count(wr_".$i.") > 0,1,0) ";

}

$query2 .= " cnt 

 g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";

$row = sql_fetch($query2);

$count = $row[cnt];

echo $count;

로 구현가능합니다.

답변에 대한 댓글 1개

플래토님 감사합니다. 많은 참조하였습니다.

답변을 작성하려면 로그인이 필요합니다.