0

クエリに問題があります。コール ob および emp_data テーブルの下にテーブルのスクリーンショットがあります。

フィールド「日付」の合計を、obCo=5 に基づいて liv として取得し、同じフィールドの別の合計を obCo=6 に基づいて遅く取得したいと考えています。ここに私の質問があります。

select ob.obNo,
  SUM(ob.date) as liv,
  ob.empId,
  ob.obDesc,    
  ob.lugar,
  ob.sponsor,
  ob.dFile,
  ob.obCo,
  emp_data.lname,
  emp_data.fname
from emp_data 
inner join ob on ob.empId=emp_data.emp_id
where obCo=5  
  and dFile >= '$year/05/01' 
  and dFile <='$nyear/04/31' and ak_id=1
group by ob.empId
order by lname ASC
4

1 に答える 1

0

式を合計しIF()ます。

select ob.obNo,
  SUM(if (obCo = 5, ob.date, 0)) as liv,
  SUM(if (obCo = 6, ob.date, 0)) as late,
  ob.empId,
  ob.obDesc,    
  ob.lugar,
  ob.sponsor,
  ob.dFile,
  ob.obCo,
  emp_data.lname,
  emp_data.fname
from emp_data 
inner join ob on ob.empId=emp_data.emp_id
where obCo IN (5, 6)
  and dFile >= '$year/05/01' 
  and dFile <='$nyear/04/31' and ak_id=1
group by ob.empId
order by lname ASC

SQLFIDDLE デモ

于 2013-09-19T07:39:56.450 に答える