2017-07-14 6 views
1

解決策が見つからないようです。2つのSQLデータテーブルをasp.net Webサイトのコード内にvb.netを使用してマージする

ここに状況があります。私は別のwhere句を持つ同じテーブルから2つのSQLクエリを持っています。

表Aは、このSQL文の使用:

Select jo.AssemblySeq As Assm, 
     jo.OprSeq As [OP Center #], 
     jo.WCCode As WC, 
     Convert(Varchar, jo.DueDate, 101) As [Due Date], 
     ja.RequiredQty As Qty, 
     jo.QtyCompleted As [Qty Comp], 
     jo.OpComplete As OpComplete 
From  JobOper jo 
Join  JobAsmbl ja 
    On jo.JobNum = ja.JobNum 
     And jo.AssemblySeq = ja.AssemblySeq 
Where jo.JobNum Like '236087.%' 
     And ja.AssemblySeq <> 0 
Order By jo.AssemblySeq; 

戻り、このデータを:

Select jo.AssemblySeq As Assm, 
     jo.OprSeq As [OP Center #], 
     jo.WCCode As WC, 
     Convert(Varchar, jo.DueDate, 101) As [Due Date], 
     jo.QtyPer As QTY, 
     jo.QtyCompleted As [Qty Comp], 
     jo.OpComplete As OpComplete 
From  JobOper jo 
Join  JobAsmbl ja 
    On jo.JobNum = ja.JobNum 
     And jo.AssemblySeq = ja.AssemblySeq 
Where jo.JobNum Like '236087.%' 
     And ja.AssemblySeq = 0 
Order By jo.AssemblySeq; 

戻り、このデータ:

enter image description here

表Bは、このSQLクエリを使用しています:

私がする必要がどのような

enter image description here

私はASSMと呼ばれる列、OPセンター#を持っているように、これらの2つのテーブルをマージされ、WC、期日は、数量、数量は、OpCompleteを完了しました。私の問題は、テーブルAのクエリのwhere句は、ja.AssemblySeq <> 0、テーブルBのクエリのwhere句はja.AssemblySeq = 0です。

両方のクエリのすべての行が必要です。いくつかのタイプの結合が必要かどうか、またはサブクエリを含むかどうかはわかりません。

+2

これはASP.NETとVB.NETとは何が関係がありますか? – mason

+0

SQLデータベースに接続するASP.NET WebサイトでVB.Netを使用しています – mbcharney

+0

どのように関連性がありますか? 2つのクエリをSQLで組み合わせるだけであれば、それはまったく関係ありません。 – mason

答えて

3

簡単なUNION ALLは、以下のようにするのに役立ちます:

Select * from Query1 
    Union All 
Select * from Query2 
1

あなたは全くUNION ALLを行う必要はありません。テーブルを2度ヒットする必要なく、1つのクエリでこれを実行できます。

クエリは、ja.AssemblySeqの値に基づいて選択された列を除いて同じです。 WHERE句をすべて削除してQty列をCASEという式にするだけです。

Select jo.AssemblySeq As Assm, 
     jo.OprSeq As [OP Center #], 
     jo.WCCode As WC, 
     Convert(Varchar, jo.DueDate, 101) As [Due Date], 
     Case When ja.AssemblySeq = 0 
      Then jo.QtyPer 
      Else ja.RequiredQty 
     End As Qty, 
     jo.QtyCompleted As [Qty Comp], 
     jo.OpComplete As OpComplete 
From  JobOper jo 
Join  JobAsmbl ja 
    On jo.JobNum = ja.JobNum 
     And jo.AssemblySeq = ja.AssemblySeq 
Where jo.JobNum Like '236087.%' 
Order By jo.AssemblySeq; 
+1

RIPベストアンサー... –

関連する問題