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 が max value である行に基づいて文字列を返すのはどうですか? 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 に答える