2012-07-27 404 views
1

DATA SETSSQL - 嵌套查詢查詢

我想選擇所有dealercode(不同)和introducercode與iapn。但iapn只能是最高價值。

例如

dealercode = 7 and iapin = 3 and introducercode = 3 

這樣的(它必須是一個DEALERCODE唯一的價值)

這是我的查詢:

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 

我重視這條信息數據集的代碼。

enter image description here

這是結構。我想要得到如下結果。 DEALERCODE 1200 iapn 003 and introducercode 203. only。

當前數據庫如下。

1200 001 201 
    1200 002 202 
    1200 003 203 

請幫我解決這個問題。

回答

4

爲什麼不直接使用MAXGROUP BY還是有別的東西,我很想念

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

Aggregate Functions (Transact-SQL)

編輯

重新改變你的要求,你可能想嘗試像

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 
+0

感謝reply.But結果是一樣的我post.It包括所有的細節.. – TRS 2012-07-27 05:38:10

+1

可以您可以在發佈數據的問題,以及您對導入代碼的期望是什麼? – 2012-07-27 05:41:31

+0

我將帖子添加爲answer.please檢查它。 – TRS 2012-07-27 05:57:48

1

看起來你想要MINIMUM 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