0

我怎样才能在 SQL 中做到这一点?

这是我的示例数据:

ColA   ColB   ColC   ColD   ColE
----   ----   ----   ----   ----
TR12   25     67    yey
TR11   28     99    apr     2/2/2013
TR12   78     55    apr     2/2/2013
TR12   20     35    olf     2/5/2013

条件是得到ColA中某个值的ColB和ColC中的最大值。

对于 ColD 和 ColE 值,我想从具有最大 ColE 值的行中获取它们。

 ColA   ColB   ColC   ColD   ColE
 ----   ----   ----   ----   ----
*TR12*  25     *67*  yey
 TR11   28     99    apr     2/2/2013
 TR12   *78*   55    apr     2/2/2013
 TR12   20     35    *olf*   *2/5/2013*

因此,我的预期结果是这样的:

ColA   ColB   ColC   ColD   ColE
----   ----   ----   ----   ----
TR12   78     67     olf    2/5/2013

这就是我现在所拥有的,它可以返回列的正确最大值,但是根据 ColE 是最大值的行返回一个字符串呢?当我为 ColD 执行 max() 函数时,我得到的值不正确。我得到的是另一个词,而不是 ColE 最大的词。

SELECT 
   ColA, max(ColB) as ColB, max(ColC) as ColC,
   max(ColD) as ColD, -- this is where I got it wrong,
      this should return the string where its ColE is the maximum
   max(ColE) as ColE
FROM 
   dbo.SomeTable 
WHERE 
   ColA = 'TR12'

我真的希望你能帮我解决这个问题..

感谢您的快速回复..

4

1 回答 1

1

你做得很好;尽管继续。max() 聚合函数适用于字符串和数字。

于 2013-03-22T09:44:39.793 回答