2017-07-03 3 views
3

私はレコードセットを(Order BY)ProductDesc、RecDate、次にProductBrand にソートしました。Sqlセレクトステートメントの問題順に並べる

-

RecDate  ---  ProductDesc    ---  Brand 
-------------------------------------------------------------- 
2017-07-15  ---  TOMATO ROMA    ---  (S & S) 
2017-07-16  ---  TOMATO ROMA    ---  (A & B) 
2017-07-17  ---  TOMATO ROMA    ---  (C & D) 
2017-07-18  ---  TOMATO ROMA    ---  (AAA) 
2017-07-25  ---  TOMATO ROMA    ---  (C & D) 
2017-07-26  ---  TOMATO ROMA    ---  (C & D) 

が、私の要件は、同じ製品があるならば、ASCにProductDesc、RecDateによってソートされたこれらのレコードを表示することです - >> SQLは

SELECT RecDate, ProductDesc,ProductBrand 
FROM MyTable i 
Order BY i.ProductDesc, i.RecDate,i. ProductBrand 

です同じブランド( 'TOMATE ROMA(C & D)'のように)が異なる受信日時を持つ場合、 これらをまとめてグループ化する必要があります。ソートされたデータは次のようになります

RecDate  ---  ProductDesc    ---  Brand 
---------------------------------------------------------------- 
2017-07-15  ---  TOMATE ROMA    ---  (S & S) 
2017-07-16  ---  TOMATE ROMA    ---  (A & B) 
2017-07-17  ---  TOMATE ROMA    ---  (C & D) 
2017-07-25  ---  TOMATE ROMA    ---  (C & D) 
2017-07-26  ---  TOMATE ROMA    ---  (C & D) 
2017-07-18  ---  TOMATE ROMA    ---  (AAA) 

どのように私はこれを遂行することができますか? 注:SQL Serverを使用していて、SQLを実行するとdataTableを埋め、datagridviewにこのデータテーブルを埋めます。

答えて

5

ブランドの日付の最小値で並べ替えたい。これを行うには、order by句でウィンドウ関数を使用することができます。

select RecDate, ProductDesc, ProductBrand 
from MyTable i 
order by i.ProductDesc, 
     min(i.RecDate) over (partition by i.ProductBrand), 
     i.ProductBrand, 
     i.RecDate; 
+0

このソリューションは正常に動作します。..おかげ あなたは、私が同じでLINQを成し遂げることができますどのように提案してくださいことはできますか? – Ronjon

+0

linqやデータテーブルでも同じことができますか? – Ronjon

関連する問題