갯수구하는 쿼리좀 봐 주세요.
본문
저는 등록된 리스트(여러개일수도 있음) 내에서 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;
로 구현가능합니다.
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.