2016-12-27 33 views
0

アプリケーションでlinqを使用してサブクエリを作成しています。私はSQL Serverで自分のSQLサブクエリを書いた。私はSQL Serverでこのクエリを実行すると、結果は完璧与えるとSQLクエリがmvc5でlinqを使ってサブクエリを書く方法は?

のような私のSQL Serverの次のようになります。

select Row_Number() Over(OrderBy Mmname) as Sno,Mmname,Mmcardno,Mmdob,MmEmail,(Select SUM(MSSRNETAMT) from MSCAS where MSCAS.MSSFORMNO = MSMEM.MmCardno and MSCAS.MSSRBILLDT between '01/01/2016' and '30/12/2016') Billopen,(Select SUM(MSSRNETAMT) from MSCAS where MSCAS.MSSFORMNO = MSMEM.MmCardno and MSCAS.MSSRBILLDT between '01/01/2016' and '30/12/2016') BillForm,Mmredpv,Msdval,Mmcontact,Mmdate,Mmaddr,MmCuser,MmCuserdt,Mmusercd, 
    Mmuser,Mmuserdt,Cast(Mmcntrn as int) as Mmcntr from MSMEM inner join MSSCHEDET on MSMEM.Mschuid = MSSCHEDET.MSDID 

私のLINQクエリ

   Var query = (from Ms in db.msmems join Mss in db. Msschedet on Ms. Mechuid equals mss. MSDID select new 
     { 
      name = Ms. Mmname, 
      Billopen = (from mc in db. MSCAS where Ms.  Mmcardno = mc. Mssformno) select mc.MSSRNETAMT); 
    }): 

は、これが唯一の私が試したが、私請求書にエラーが表示されているそれは私がエラーを取得している量です

これは私のSQLクエリです。私はlinqでこのSQLクエリを変換しようとしました。しかし、私は何度も失敗してしまいました。私は誤りがあります。

+0

どのようなLinqコードがありますか、どのようなエラーが表示されていますか? – halfer

答えて

0

あなたはこれを試すことができますか?あなたのテーブル構造を理解することなく、私はこれを最適化するのに狙いを定めました。 MSCASテーブルに2回目の参加ができない理由はありませんか?

var query = (from Ms in db.msmems 
      join Mss in db.Msschedet on Ms.Mechuid equals mss.MSDID 
      join Mc in db.MSCAS on Ms.Mmcardno equals Mc.Mssformno 
      select new { 
         name = Ms.Mmname, 
         Billopen = Mc.where(x=>x.MSSRBILLDT >= '01-01-2016' and x.MSSRBILLDT <= '12-30-2016').Sum(z=>z.MSSRNETAMT) 
         } 
      ); 
関連する問題