1

数据集

我想选择所有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 

我已将此帖子数据集附加到此代码中。

在此处输入图像描述

这是结构。我想得到如下结果。仅限经销商代码 1200 iapn 003 和介绍人代码 203。

当前数据库如下。

  1200  001  201
  1200  002  202
  1200  003  203

请帮我解决这个问题。

4

2 回答 2

4

为什么不直接使用MAXandGROUP BY或者还有其他我想念的东西

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

聚合函数 (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
于 2012-07-27T05:33:17.597 回答
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
于 2012-07-27T06:08:13.860 回答