2016-10-25 3 views
0

このビューSSMSで連合(EU)は、MVC 5

alter View [dbo].[vwQTCustomers] 
as 

select distinct top 100 percent 
Customer, 
Name, 
isActive 
from (
select 
    'testA' 'Customer', 
    'testA' 'Name', 
    convert(bit, 1) 'isActive' 
UNION ALL 
select 
    'testB' 'Customer', 
    'testB' 'Name', 
    convert(bit, 1) 'isActive') A 

リターンでdropdownlistfor。

Customer Name isActive 
testA testA 1 
testB testB 1 

これをMVCのドロップダウンリストに追加すると、2つの 'testA'という結果が得られます。

モデル:

ビュー:

 <div class="editorMedium"> 
         @Html.Label("Customer:") 
         @Html.DropDownListFor(model => model.selectedCustomer, Model.customers, "-- Select Customer --", new { @class = "dropdown dropdown-toggle btn btn-default", @id = "customer" }) 
         @Html.ValidationMessageFor(model => model.selectedCustomer) 
     </div> 

はもともと、このビューには、1つだけのテーブルを含んでおり、それがうまく働きました。問題は組合声明のようですが、私は理由を理解できません。何か案は?

+0

問題点は何ですか?あなたの質問のタイトルは「それは壊れている」と言います。どういう意味ですか?なぜあなたはそこに別のトップ100%を持っていますか? –

+0

ドロップダウンでは、「testA」というテキストの2つの結果が返されます。別の上位100%に関わらず同じことをします。 – SandSnark

+0

右...別名と上位100%は無意味です。外部クエリは何も提供していません。また、派生した列名を一重引用符で囲むことは良い習慣ではありません。それは本当にあなたのコードを混乱させる。 –

答えて

0

ここでは同じ結果が得られますが、多くは単純化されたクエリです。ここではサブクエリを使用する必要はありません。私はまだあなたが苦しんでいる問題が実際には理解していません。

select 
    Customer = 'testA', 
    Name = 'testA', 
    isActive = convert(bit, 1) 
UNION ALL 
select 
    'testB', 
    'testB', 
    convert(bit, 1) 
+0

クエリが問題ではない、元の質問に記載されているように結果が正しく返されます。 MVCを動作させるためにトリックすることができるかどうかを確認するために、私はサブクエリにユニオンをラップしました。問題は、MVCとドロップダウンです。 – SandSnark

+0

エラーはMVCにありますが、問題の内容を理解できません。私はあなたが持っている質問がそのような単純な事のために過度に複雑であり、私たちはコメントが許すよりも長いので、これを投稿しました。 –