2016-10-17 6 views
0

グループ化を変更せずにテーブル要素を追加するにはどうすればよいですか?意図したように、これを選択した作品:グループ化を変更せずにテーブル要素を含める方法

SELECT cid, cnumber, cenrtyp, MAX(nqpoints); 
from demographicenroll3.dbf; 
WHERE cenrtyp = "RT" ; 
GROUP BY cid, cnumber, cenrtyp ; 

これは私が欲しいものである最大nqpoints値を持つグループのCID、サブグループcnumber、内のレコードを1つだけ含んリストを与えます。

しかし、私はECIDである私のレコードセット内のcnumberのユニークなレコード番号を含める必要がある - ので、私はECIDを追加します。

SELECT cid, cnumber, cenrtyp, MAX(nqpoints), ecid; 
from demographicenroll3.dbf; 
WHERE cenrtyp = "RT" ; 
GROUP BY cid, cnumber, cenrtyp, ecid ; 

しかし、それはマックス(作るグループが変更されるので、これは動作しません。 nqpoints)が間違っています。私が欲しいものを得るためのどんなトリックですか?

あなたは、単一のクエリでそれを行うことはできませんが、別のクエリに派生テーブルに既存のクエリを行うことででき

答えて

1

SELECT dmax.cid, dmax.cnumber, dmax.cenrtyp, maxpts, ecid ; 
FROM demographicenroll3 d3 
    JOIN (
    SELECT cid, cnumber, cenrtyp, MAX(nqpoints) AS maxpts; 
    from demographicenroll3; 
    WHERE cenrtyp = "RT" ; 
    GROUP BY cid, cnumber, cenrtyp) dmax ; 
    ON d3.cid = dmax.cid ; 
    AND d3.cnumber = dmax.cnumber ; 
    AND d3.cenrtyp = dmax.cenrtype ; 
    AND d3.nqpoints = dmax.maxpts 
+0

私はこれを試してみましたが、VFPがDMAXが見つからないエラーの別名を与えます。私はVFPが自己結合をサポートしているので、エラーの理由がわからない。トラブルシューティングのヒント? – DClark

+0

最後に目を覚まし、実際に問題を探しました(笑)。クエリが機能し、結果を確認するだけです。私は戻ってきます... – DClark

+0

これは正しいresutlsを与えるように見えます!ありがとう、私のプロジェクトは再び前進しています。 – DClark

関連する問題