0

多くの列、主キー (icd_data_id)、および外部キー (encounter_id) を持つデータベース テーブルがあります。

1 回だけ表示される特定の条件がありますが、過去の履歴により、条件に一致するレコードが 1 つだけであるとは言えません。そのため、最後の値を取得しようとしています。

マッピング ファイルとクエリでこれを解決する方法がわかりません。これは、マッピング ファイル内の私のクラスにあるもののサブセットです。

 <class name="Surgery">
<id name="ID" column="icd_data_id" type="Int32">
  <generator class="identity"/>
</id>

<property name="EncounterID" column="event_id" type="int" />
<property name="SpongeCountDone" column="sponge_removed" type="AnsiString" />

<more attributes here, excluded for brevity>

<property name="Category" column="category" type="AnsiString" />
</class>

取得したいのは、カテゴリ = 'XYZ' および EncounterID = 123 の max(icd_data_id) の行です。

探しているカテゴリの値は常に静的ですが、EncounterID は、このテーブルからデータを取得するときにコードで使用する値になります。

よくわからなかった場合、表にはカテゴリが XYZ ではないこの遭遇 ID の他のレコードがあり、遭遇ごとにカテゴリ = XYZ であるレコードが 1 つだけ存在するはずですが、複数存在する可能性があります。 .

3 つの基準の書き方について経験のある人はいますか?

4

1 に答える 1

1

メモ帳でこれを行いますが、次のようになります。

var results = session.CreateQuery("from Surgery p where Category='XYZ' and EncounterID=123 and p.icd_data_id in ( select max(p2.icd_data_id) from Surgery p2 group by p2.icd_data_id)")

于 2012-10-16T22:53:08.947 に答える