データベースの出力でスキップされてしまうのを回避したいです。
解決したいこと
タイトルが下手ですみません。
以下のコードで、code:4に出力が無いのでスキップされてしまうのですが、数量を0として表示させたいです。
該当するソースコード
<?php
//SQL Server
$server = "XXX";
$database = "XXX";
$user = "XXX";
$password = "XXX";
$conn = odbc_connect("Driver=SQL Server;Server=$server;Database=$database;", $user, $password);
$year = date("Y");
$month = date('m');
$SQL = "SELECT code , SUM(quantity) as qty FROM tablename WHERE MONTH(YMD) = '$month' and YEAR(YMD) ='$year' and code in('01','02','03','04','05','06') GROUP BY code";
$SQLrst = odbc_exec($conn, $SQL);
while (odbc_fetch_row($SQLrst)) {
echo floor(odbc_result($SQLrst,'code'))."<br>";
echo floor(odbc_result($SQLrst,'qty'))."<br>";
}
odbc_close($conn);
?>
結果が以下です。
01 →code
1 →qty
02
3
03
3
05
6
06
7
これを、
01 →code
1 →qty
02
3
03
3
04 →これを表示
0 →これを表示
05
6
06
7
としたいです。
自分で試したこと
まずcodeとqtyを確認してみました。
$SQL = "SELECT SUM(quantity) as qty FROM tablename WHERE MONTH(YMD) = '$month' and YEAR(YMD) ='$year' and code ='04'";
//この場合の出力は→0
$SQL = "SELECT code FROM tablename WHERE MONTH(YMD) = '$month' and YEAR(YMD) ='$year' and code ='04'";
//この場合の出力は→何も表示されない(null ?)
そこで、
$SQL = "SELECT code,CASE WHEN code IS NULL THEN '00' ELSE code END , SUM(quantity) as qty FROM tablename WHERE MONTH(YMD) = '$month' and YEAR(YMD) ='$year' and code in('01','02','03','04','05','06') GROUP BY code";
としても
$SQL = "SELECT code,CASE WHEN code = '' THEN '00' ELSE code END , SUM(quantity) as qty FROM tablename WHERE MONTH(YMD) = '$month' and YEAR(YMD) ='$year' and code in('01','02','03','04','05','06') GROUP BY code";
としても結果は変わりませんでした。
何か良い方法をご存知の方いらっしゃいましたら、恐れ入りますがご教授の程よろしくお願い申し上げます。