1

データセット

すべてdealercode(個別)introducercodeにiapnで選択したい。Bbutiapnは最高値のみである必要があります。

例えば

dealercode = 7 and iapin = 3 and introducercode = 3 

そのように(これはディーラーコードの唯一の値でなければなりません)

これは私の質問です:

  SELECT DISTINCT 
      dealercode, iapin as iapin,
      (SELECT introducercode) as introducecode
  FROM 
      dealerplacement d
  where 
      exists (SELECT MIN(iapin) FROM dealerplacement )
  ORDER BY 
      dealercode, iapin ASC 

この投稿データセットをこのコードに添付しました。

ここに画像の説明を入力してください

これが構造です。以下のような結果が得られたいです。DEALERCODE 1200iapn003およびintroducercode203のみ。

以下のような現在のデータベース。

  1200  001  201
  1200  002  202
  1200  003  203

これを解決するのを手伝ってください。

4

2 に答える 2

4

Why not just use MAX and GROUP BY or is there something else I am missing

SELECT  dealercode,
        introducercode,
        MAX(iapin) iapin
FROM    dealerplacement d
GROUP BY    dealercode,
            introducercode

Aggregate Functions (Transact-SQL)

EDIT

Re the changes to your request, you might want to try something like

SELECT  d.*
FROM    dealerplacement d INNER JOIN
        (
            SELECT  dealercode, 
                    MAX(iapin) iapin 
            FROM    dealerplacement d 
            GROUP BY    dealercode
        ) dM    ON  d.dealercode = dM.dealercode
                AND d.iapin = dM.iapin
于 2012-07-27T05:33:17.597 に答える
1

例の結果に基づいて、最小のiapinが必要なようです。適切な対応するを取得するintroducecodeには、副選択を使用する必要があります。

SELECT a.dealercode, a.iapin, a.introducecode
FROM dealerplacement a
INNER JOIN
(
    SELECT dealercode, MIN(iapin) AS miniapin
    FROM dealerplacement
    GROUP BY dealercode
) b ON a.dealercode = b.dealercode AND a.iapin = b.miniapin
于 2012-07-27T06:08:13.860 に答える