2012-01-29 17 views
-1

私はSQL Server 2008、C#を使用しています。約20000行のテーブルがあります。このテーブルにはいくつかの類似の行があります。約900個の異なる行があり、それは自分のテーブル構造です。SQL Server strange distinct query

例えば

tblCourse

courselevel, coursecode, coursename, branchcode... 

私は同じcoursecode/coursenameで20行を持っているが、異なるbranchcodeまたはcourselevelで、私は唯一のユニークなcoursecodeでアイテムを含むテーブルを持っているつもりです。 、すべての行が同様coursecodeを持っているので、

... courselevel=1,coursecode=1200,coursename=A,branchcode=200... 

は、私は何をすべき:私は最初の行だけを持つようにしたい

... courselevel=1,coursecode=1200,coursename=A,branchcode=200... 
... courselevel=2,coursecode=1200,coursename=A,branchcode=200... 
... courselevel=1,coursecode=1200,coursename=A,branchcode=220... 
... courselevel=1,coursecode=1200,coursename=A,branchcode=230... 
... courselevel=1,coursecode=1200,coursename=A,branchcode=240... 
... courselevel=1,coursecode=1200,coursename=A,branchcode=250... 
... courselevel=2,coursecode=1200,coursename=A,branchcode=251... 
... courselevel=1,coursecode=1200,coursename=A,branchcode=225... 

:ここ

は、私のテーブルの小さなサンプルです行う?

選択クエリ文字列はどのように書くべきですか?

私は幸運とは別の方法(グループ別、別々、最大(ID)...)をテストして、助けてください!

おかげ

+4

サンプルデータと出力を提供してください。 – RedFilter

+0

OKだから、テーブルに20,000行ありますか?**何から**抽出しますか?あなたはあなたの目標が何であるか、あなたのテーブルからどんな種類のデータを取り出そうとしているのかについてはっきりしていません... –

+0

ああ私の質問を更新しました。一意のコースコードを持つレコードだけを持っていたい –

答えて

1

あなたは同様の列をGROUP BY、それらはただ一つのレコードを返すように、他の列上の任意のAggregate Functionを使用することができます。 何かは、1つの値が完全にあなたが使用する集計関数に依存することを意味します。

Aggregate Functions

集約関数は、値のセットに計算を実行し、単一の値を返す 。 COUNTを除いて、集合関数は ヌル値を無視します。集約関数は、頻繁にこの例では、SELECT文

の GROUP BY句で使用されている、私は最小値/最大値と平均の集計関数を使用していました。

SELECT courselevel 
     , coursecode 
     , coursename 
     , MIN(branchcode) 
     , MAX(othercolumn) 
     , AVG(numberColumn) 
     , ... 
FROM yourTable 
GROUP BY 
     courselevel 
     , coursecode 
     , coursename 
+0

ありがとう私はあなたのコードをテストしています、私はそれがうまくいくことを願っています! –

+0

私は次のクエリを使用します:select coursename、coursecode、MIN(ブランチコード)、MIN(レベルコード)、レベルコード、coursecode、coursenameによってtblCourseグループから戻ってきました。私は類似したブランチコードまたはレベルコードを持つアイテムを持っていないと思いますが、今はどうすればいいですか?ありがとう –

+0

レベルコードでグループ化したり、集計機能を適用することはできませんか?実際のクエリを投稿してください。本当に必要なものは私には分かりません。レベルコード、コースコード、コースナームでグループ化している場合、異なるグループが同じブランチコードを持つことは可能です。 –