1

ここで提示されたソリューションを試してみました カーウィン氏
各グループの最後のレコードを取得する

FF レコードで必要なすべてのレコードを含む単一のテーブルがあります。

 --------------------------------------------------
 | Keynum     | PaymentID  | BuyerID | LatestBill |
 |----------- | -----------|---------|------------|
 |   3        |    4       |    4    |  30000     |
 |   2        |    4       |    4    |  10000     |
 |   1        |    4       |    4    |  10000     |
 |   1        |    9       |    9    |  9999      |
 --------------------------------------------------

望ましい出力は次のとおりです。

 --------------------------------------------------
 | Keynum     | PaymentID  | BuyerID | LatestBill |
 |----------- | -----------|---------|------------|
 |   3        |    4       |    4    |  30000     |
 |   1        |    9       |    9    |  9999      |
 --------------------------------------------------

私が試したのはこれです:

  Select keynum, PaymentID, BuyerId, LatestBill From  Sales where LatestBill != 0 group by PaymentID, BuyerID order by keynum  Desc;

この

 SELECT max(keynum), PaymentID, BuyerID, NewInstallmentBal
 FROM aliissales.tblmovedactual
 GROUP BY PaymentID, BuyerID DESC;

しかし、私が得るのはこれです:

 --------------------------------------------------
 | Keynum     | PaymentID  | BuyerID | LatestBill |
 |----------- | -----------|---------|------------|
 |   1        |    4       |    4    |  10000     |
 |   1        |    9       |    9    |  9999      |
 --------------------------------------------------

必要なのは、各グループの最後のレコードで、各レコードは PaymentID と BuyerID でグループ化されます。

Max(keynum) を使用すると、実際には各グループの最大キー番号が取得されますが、それに対応するレコードは取得されません。レコードを Keynum と一緒に使用する簡単な方法はありますか??

また、LatestBill = 0 の場合、グループ全体が無視されるようになりました。

つまり、もし

keynum 3 LatestBill = 0, group BuyerID 4 , PaymentID 4 is now ignored.    
4

2 に答える 2

1
SELECT  a.*
FROM    aliissales.tblmovedactual a
        INNER JOIN
        (
            SELECT  max(keynum) xx, PaymentID, BuyerID
            FROM    aliissales.tblmovedactual
            GROUP   BY PaymentID, BuyerID
        ) b ON  a.PaymentID = b.PaymentID   AND
                a.BuyerID = b.BuyerID AND
                a.keynum = b.xx
于 2013-03-11T06:54:42.470 に答える
0

SELECT keynum, PaymentID, BuyerID, NewInstallmentBal FROM aliissales.tblmovedactual WHERE keynum IN (SELECT max(keynum) FROM aliissales.tblmovedactual GROUP BY PaymentID )

于 2013-04-01T05:33:41.350 に答える