0

不在または現在の結果を表示する方法

この問題を解決するのを手伝ってくださいありがとう

現在、この結果のように表示されています

________________________________________
 Name   TeacherNo   Attendance
________________________________________
 XYZ       993             5 Days Present

 Abc       991             7 Days Present

 123       955             2 Days Present

________________________________________

そして、私はこのようにしたい

________________________________________________________________
Name    TeacherNo      Present Day          Absent Days
_________________________________________________________________
XYZ       993             5 Days Present        3 Days Present

Abc       991             7 Days Present        0 Days Present

123       955             2 Days Present        4 Days Present  

________________________________________________________________

これはコードです

 $result1 = mysql_query("select name ,id ,`teacherno` as teacherno, CONCAT(count(`teacherno`),' Present days') as Attendance
   from tattendance 
   where `Attendance` = 'present' AND date BETWEEN '2013-04-01' AND '2013-04-07' group by `teacherno` order by attendance desc");
4

1 に答える 1

1

次のクエリのようなものを探していますか?

SELECT name, teacherno, 
    CONCAT(COALESCE(SUM(CASE WHEN Attendance = 'present' THEN 1 END),0),' Present days') as Present,
    CONCAT(COALESCE(SUM(CASE WHEN Attendance = 'absent' THEN 1 END),0),' Absent days') as Absent
FROM tattendance  
GROUP BY teacherno 

これは、出席列に応じて日数を合計SUMするために使用されます。の代わりに 0 を返すCASEことも含めました。COALESCENULL

SQL フィドルのデモ

于 2013-04-21T14:15:04.990 に答える