2017-09-29 8 views
0

で選択した私は、次の3つのテーブルを持っている:LINQクエリを使用してTABLE_STORE_HOUSE.IdProduct魔女の条件TABLE_STORE_HOUSE.ProductNumber - Sum(TABLE_SELL.ProductNumberSell) > 0TABLE_STORE_HOUSE.TimeInputを得る方法コンバートSQLどこ

TABLE_PRODUCT (IdProduct, ProductName, ProductUnit) 
TABLE_STORE_HOUSE (IdContain, IdProduct, ProductNumber, TimeInput) 
TABLE_SELL (IdSell, IdContain, ProductNumberSell, TimeSell) 

現在は、私はLINQのためのSQLを変えるのを助ける最小

です。 .............

select top 1 IdContain 
from 
    TABLE_STORE_HOUSE 
where IdProduct = '6' 
     and 
     ProductNumber - (select sum(ProductNumber) 
         from TABLE_SELL 
         Where TABLE_SELL.IdContain = IdContain)> 0 
order by TimeInput desc; 
+0

あなたの正確な問題は何ですか?特定のLINQ構文要素に問題がありますか? –

+0

ありがとうございます。私は1セグメントの問題があります。しかし、私はlinqの構文に変換する方法を知らない – Tuan

+0

ただSQLをポストして、変換を求めてはいけない。少なくともクラスモデルを表示して、ナビゲーションプロパティと関連の多重度を確認します。また、どのタイプのLINQをターゲットにしているのかを(エンティティに)伝え、最初の努力を示してください。 –

答えて

1

これを試すことができますか?

from t in TABLE_STORE_HOUSEs 
let TSell = (
       from s in TABLE_SELLs 
       where s.IdContain == t.IdContain 
       orderby s.ProductNumber 
       select new { 
         s.ProductNumber 
         } 
       ) 
where t.IdProduct == 6 && (t.ProductNumber - TSell.Sum(si => si.ProductNumber)) > 0 
select new { t.IdContain } 

トップ1にはTake()の機能を使用できます。

+0

ありがとうございます。すごく上手。私はチェックします。 – Tuan