私はSQLとstackoverflowが初めてなので、申し訳ありません。また、データベースは私が設計したものではなく、現在変更できません。次のテーブルがあります。
Clients (ClientId , Client_Name)
Client_Purchases ( Purchase_id, ClientID, Credits, Credits_logged)
Service_Log (LogId, Purchase_id, log_date)
クレジットが 0 のすべてのクライアントを最新の log_date 順に表示したいと考えています。これを行うには、最初に sum(Credits - Credits_logged) を取得し、それらが 0 の場合、クライアントにクレジットが残っていないことがわかります (クライアントは複数の Client_Purchases を持つことができることに注意してください)。次に、問題が発生しているように見える最新の log_date で整理します。
私が次のことをした場合:
SELECT a.ClientId, a.Client_Name, (max(c.log_date))
FROM `Client_Purchases` AS a, Clients AS b, Service_Log AS c
WHERE b.ClientId=a.ClientId AND a.Purchase_id = c.Purchase_id
GROUP BY a.ClientId
HAVING sum(a.Credits-a.Credits_logged) = 0
ORDER BY (max(c.log_date)) DESC
購入した可能性のあるクライアントがまだ表示されていることを除けば、ほぼ正しいです。問題は、Purchase_id を介してテーブルを接続するところにあると思います。どんな助けでも大歓迎です!