学生の作業情報を保存するテーブルがあります。StudentID と四半期 ID に基づいて時間を選択する必要があります。ここに私が持っているものがあります:
SELECT
(SELECT hours FROM clinicalStudents WHERE quarterID='201101' and studentID='$studentID') as q1,
(SELECT hours FROM clinicalStudents WHERE quarterID='201102' and studentID='$studentID') as q2,
(SELECT hours FROM clinicalStudents WHERE quarterID='201103' and studentID='$studentID') as q3,
(SELECT hours FROM clinicalStudents WHERE quarterID='201104' and studentID='$studentID') as q4
それは私にいくつかの数字を与えているだけで、すべてではありません。サーバー マネージャーでこれを (WHERE 句を除いて) 実行したところ、エラーが発生しました。
「サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません」
どんな援助も素晴らしいでしょう。ありがとう!
編集:
$studentID は while ループで生成されるため、次の生徒に移動する前にその生徒の時間を使用しています。四半期ごとに 1 人の学生のすべての時間を取得し、それらを追加し (これは SQL の外部で行う必要があります)、結果を変数に格納してから、次の学生に移動します。これは、1 四半期を取得すると完璧に機能しますが、すべての四半期を取得するのに問題があります。
編集ラウンド2:私が推測するかなり怠惰な方法でそれをしました:
特定の生徒のすべての時間と QuarterID を選択しました。その後、while(odbc_fetch_row()) を実行しました。それが 201101 だった場合、$q1 の山に追加し、201102 を $q2 の山に追加する、などです。処理は少し遅くなりますが、私がやっていることには大きな問題はありません。