mysql 다시 질문드립니당
본문
<?for($j=1; $j<13; $j++){ //1월부터 12월까지 계산
<td>
<?
if($j<10){
$j="0".$j;
}
$query_month = "SELECT * FROM g5_write_502 WHERE wr_subject='{$row[mb_name]}' and wr_4='{$wr_4}' and wr_5='{$j}' ";
//echo $query_month;
$result_month = sql_query($query_month);
for($i=0; $row_month = sql_fetch_array($result_month); $i++) {
$month_use=$row_month['cnt'];
echo $month_use;
}
}
?>
</td>
<?}?>
현재 이런식으로 소스를 짜봤는데요 저기서 wr_5에 해당하는게 01월 ~ 12월 입니다
제가 원하는거는 저 1~12월 최근데이터에 다가 +0.5 를 해주는 겁니다ㅠㅠ
각 1월의 최근값을 구하는건 쉬운데 전체데이터의 최근값을 어떻게 구해줘야할지..
01~12월 쿼리문이 각각있어서요 ㅠㅠㅠ
그러니까 $row_month[wr_5] 중 에서 제일 최근값을 구해 그 해당하는 달에
+0.5 를 하고 싶은데
최근값을 구하는게 쉽지않네요
!-->답변 4
예를 들어서 2030년까지 데이터를 쭉 넣어놨는데 개월과 년이 드문드문 있는 경우, 예를 들어 오늘 날짜를 검색하려고 하면 2019년 04월 데이터를 가져와야하는데 없을경우 가장 최근의 데이터(2019년 데이터가 만약 6월것만 없다면 6월것을 가져오는)를 가져오는 방법을 체크하시려는게 맞나요 혹시?
먼저
$query_month
=
"SELECT * FROM g5_write_502 WHERE wr_subject='{$row[mb_name]}' and wr_4='{$wr_4}' and wr_5='{$j}' "
;
여기의 내용으로 보아
$month_use
=
$row_month
[
'cnt'
];
이 구분은 오류가 나올것 같습니다.
필드에 'cnt'가 존재한다면 예외로 오류가 없겠지만요
최근데이타 :: 이것이 어떤것을 구하려는 것일까요?
쿼리로 최근데이타를 구하는것은
$query_month
=
"SELECT * FROM g5_write_502 WHERE wr_subject='{$row[mb_name]}' and wr_4='{$wr_4}' and wr_5='{$j}' "
;
여기에
$query_month .= " order by wr_datetime desc limit 1";
을 추가하시면 해당월의 최종 1개의 데이타를 가져옵니다.
그런데 CNT는 어디서 나오는지가 일단 알수없다는점이고,
0.5를 어느필드에 더하시려는지
단지 출력에만 0.5를 더하실건지
더한값을 저장하실건지
이런 기준점이 모호하네요
최근달만 뽑으신다는 내용이
현재월 4월이면 4월자료?
아니면 3월자료?
최근달이 현재월기준일경우
wr_4||'-'||wr_5 = substring(curdate()||'',0,7)
으로 검색하면 루프가 필요없을것 같은데요