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

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

QA

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

답변 2

본문


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

 

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


$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

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


$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;

쿼리로 쉽게 구현하는 방법


$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;

 

로 구현가능하고

 

위의 문장을 굳이 줄인다면


$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;

 

로 구현가능합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,111
© SIRSOFT
현재 페이지 제일 처음으로