0

私には次のジレンマがあります:

2つのテーブルがあります:PatientとCharges、patOIDはChargesテーブル内の外部キーです。

2つのテーブル間の単純な結合:

 from itemPat in listPat 
 join itemCharge in listCharge on itemPat.patOID equals itemC.patOID 
 select new 
      {
        itemPat.patOID,
        itemCharge.paid
      }

患者が複数の請求を受ける可能性があるという顔を考慮して、特定のフィールド(例:有料)の最大値のitemChargeを取得するにはどうすればよいですか?

私は何を試しましたか:

 from itemPat in listPat 
 join itemCharge in listCharge on itemPat.patOID equals itemC.patOID into zzz
 select new 
       {
           itemPat.patOID,
           MaxPay=zzz.Max(p=>p.paid),
       }

このソリューションは、そのフィールドの値を提供しますが、参照したいレコード内の他のフィールドへのアクセスを提供しません。どうやってやるの ?

私は次のようなことを考えています:

  from itemPat in listPat 
     join itemCharge in listCharge.Where(p=>Max(p.paid)) on itemPat.patOID equals itemC.patOID into zzz
     select new 
           {
               itemPat.patOID,
               MaxPay=zzz.Max(p=>p.paid),
           }
4

1 に答える 1

3
from itemPat in listPat 
join itemCharge in listCharge on itemPat.patOID equals itemC.patOID into g
select new  {
   itemPat.patOID,
   MaxCharge = g.OrderByDescending(p => p.paid).FirstOrDefault()
}

MaxChargeプロパティには、最大支払額の請求オブジェクトが含まれます。患者に請求がない場合はnullが含まれます。

于 2013-01-08T16:11:31.967 に答える