1

JOINS と group-by を一緒に使用できません。これを検索しました...しかし、解決策が見つかりませんでした..問題は次のとおりです。

私は2つのテーブルを持っています.最初はmain_tableフィールドがありますeid, name,status

2 番目のテーブルは、フィールドfideidlast_dateremarks、およびnext_date

2 番目のテーブルは、クライアントのフォローアップの詳細 (main_table に保存されたクライアントの詳細) を格納するために使用され、選択した日付期間 (from_date から to_date まで) で各クライアントの最後のフォローアップ レコードを取得し、next_date で降順で並べ替えます。

以下のクエリを使用しましたが、機能しませんでした

SELECT * 
FROM main_table as MT 
JOIN followups as MF on MT.eid=MF.eid 
WHERE MT.status='open' AND MF.NDate<='2012-12-07' 
GROUP BY MF.eid 
ORDER BY MF.next_date DESC

前もって感謝します...みんな

4

3 に答える 3

2

これを試して

SELECT * FROM main_table AS MT 
LEFT JOIN (SELECT * FROM (SELECT * FROM followups ORDER BY next_date DESC) AS A GROUP BY eid) AS MF ON MT.eid=MF.eid 
WHERE MT.status='open' 
AND MF.NDate<='2012-12-07';
于 2013-06-01T10:34:10.760 に答える
2

次のようなことを試すことができます:

select m.eid,
  m.name,
  m.status,
  f1.last_date,
  f1.remarks,
  f1.next_date
from maintable m
left join
(
  select max(last_date) maxLast, eid
  from followups
  where last_date between from_date and to_date
  group by eid
) f
  on m.eid = f.eid
left join followups f1
  on f.maxLast = f1.last_date
  and f.eid = f1.eid
where m.status='open'
  and f1.next_date<='2012-12-07'
order by f1.next_date desc
于 2012-12-07T12:03:37.180 に答える
1

これを試して:

SELECT * FROM main_table AS MT 
LEFT JOIN (SELECT * FROM (SELECT * FROM followups WHERE NDate<='2012-12-07' ORDER BY next_date DESC) AS A GROUP BY eid) AS MF ON MT.eid=MF.eid 
WHERE MT.status='open';
于 2012-12-07T11:59:25.970 に答える