2011-07-04 10 views
0

私のSQLデータベーステーブルの2つのフィールドでselect disctinct文を使用しました。ここに私のコードです。SQL - distinct select

myCommand = New SqlCommand("SELECT DISTINCT Author FROM tblBook UNION SELECT DISTINCT BookCode FROM tblBook",myConnection) 
myAdapter = New SqlDataAdapter(myCommand) 
myAdapter.Fill(myDataSet, "tblBook") 
cboAuthor.DataSource = myDataSet.Tables(0) 
cboAuthor.DisplayMember = "Author" 
cboAuthor.DisplayValue = "BookCode" 

これはエラー:cannot bind to the new member. Parameter name:valueを生成します。助けてください

答えて

5

あなたのSQL文では、作成者は1つだけ選択しました。 BookCodeが存在しないため、データセットにも含まれません。

は、SQL文でBookCodeを含めると、それはA UNION操作は、この方法では動作しません

+0

はそれが連合ではありませんか?私は私の頭の中でユニオンを動かすことができないので、彼のSQLがどのように返ってくるのか分からない –

+0

SQLにブックコードを入れてみると、 "SELECT DISTINCT Author、Bookcode FROM tblBook" – Martin

4

を固定します。

次の2つの列含むレコードたい - あなたのようなクエリに何か必要としているので、著者とBookCodesを:

SELECT DISTINCT Author, BookCode FROM tblBook 
5

はたぶん、あなたは連合をマージするために使用されている

SELECT DISTINCT Author, Bookcode FROM tblBook 

を探しています行は列ではありません。

このように、すべてのautor(distinct)がすべてのbookcodeの行で同じ列に続く単一の列が返されます(よく)。

1

あなたは2つの異なるものをクエリします。

はあなたのいずれかが...

  1. は、各書籍の著者を取得したいです。組合はオプションではありませんので、その場合には、テーブルの結合クエリを作成する必要がありますが、実際にそのような場合には、1列として結果を必要とする

  2. は別名

    するDISTINCT SELECTに列に別名を与えると結合し

  3. tblBook UNION FROM MYCOLUMN AS著者はtblBook FROM MYCOLUMN AS DISTINCT BookCodeを選択