0

私は知る必要があります、どうすればその場でこれを行うことができますか?

たとえば、それぞれ異なる期日ステータスにある顧客がいます。現在、2つのテーブルを結合するときに、左結合でMAX(最新の期日)を選択したいのですが、これは私が望むものではない最も古い期日を選択します。

SELECT c.customerid, i.datedue
                        FROM  customers c
                               LEFT JOIN invoice i 
                                 ON i.customerid = c.customerid
                        WHERE  i.datedue <= UNIX_TIMESTAMP()
                               AND c.status!='d'
                        GROUP  BY i.customerid
                        ORDER BY i.datedue DESC
                        LIMIT  0, 1000
4

1 に答える 1

2

max()関数を使用する必要があります。

SELECT c.customerid, MAX(i.datedue)
FROM customers c LEFT JOIN invoice i ON i.customerid = c.customerid
WHERE i.datedue <= UNIX_TIMESTAMP() and c.status!='d'
GROUP BY i.customerid
ORDER BY i.datedue DESC
LIMIT 0,1000

これにより、各顧客の最大期日がわかります。

于 2012-04-24T04:40:30.957 に答える