私はピンチで作業しているこのクエリを持っていますが、より良いものにする必要があります。私はsqlsrvを学んでいて、時代遅れのものに苦労しています。SQLサーバー文で時間変数を追加してグループ化します
基本的には、すべての固有の到着(schtm + duration)を取得し、1時間あたりの予想数を表示する必要があります。誰かが私を正しい方向に向けることができますか?
このクエリでは、5:30、5:45、6:00、6:15などのすべてのユニークな時間が表示されます。私は時間単位でグループ化する必要があるので、5-6-7-8などを表示します。その下の数
<?PHP
$currentdate = date('mdy');
$this_time = date ("D, M j, Y H:i");
$current_date = date('n-d-y');
$this_time = date ("M j, Y H:i");
echo"<table width=\"100%\" border=\"1\"><tr>";
$sql = "SELECT DISTINCT cast(cast(SCHTM as datetime)+cast(DURATION as datetime) as time) as Arrivals FROM admissions.patientinfo WHERE SCHDT ='$currentdate' GROUP BY cast(cast(SCHTM as datetime)+cast(DURATION as datetime) as time)";
$stmt = sqlsrv_query($conn, $sql);
while($row = sqlsrv_fetch_array($stmt , SQLSRV_FETCH_ASSOC)) {
$Arrivals=$row['Arrivals']->format('H:i');
echo"<td align=\"center\">$Arrivals ";
$sql = "SELECT DISTINCT PATNUM as Count FROM admissions.patientinfo WHERE SCHDT ='$currentdate' AND cast(cast(SCHTM as datetime)+cast(DURATION as datetime) as time) = '$Arrivals:00' ";
$query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => 'static'));
$row_count = sqlsrv_num_rows($query);
echo"<br />$row_count</td>";
}
echo"</tr></table>"
?>
SCHTMとDURATIONはdatetimesとして保存されていませんか?ここで鋳造する必要はありますか? – Simon
これらは両方とも時間(0)フィールドです。キャスティングは私がそれを働かせる唯一の方法です。 –