0

この SQL クエリを nhibernate に変換する必要があります

declare @i int set @i=2
while (@i>0)
begin 
insert into #tmp_table3 (id , descr , RangeType , createdate )
select  * from AgeRanges as ar where AgeRangeID in (
select AgeRangeID as id from AgeRangeDetails where  agerangeid in
(select AgeRangeID from agerangedetails group by AgeRangeID having COUNT(AgeRangeID)=2)  
and agestart =(select AgeStart from #tmp_table2 where id=@i)
and AgeEnd = (select AgeEnd from #tmp_table2 where id=@i)
and Payment = (select Payment from #tmp_table2 where id=@i)
group by AgeRangeID)
and AgeRangeType=0
and AgeRangeID<>5 
set @i=@i-1
end
select id from #tmp_table3 where id in
(select id from #tmp_table3 group by id having COUNT(id)=2) group by id

誰かが私にこれを手伝ってもらえますか。ありがとう

4

1 に答える 1

2

これはかなりカスタムな SQL で、while ループ、tmp テーブル、および変数があります。このため、ストアド プロシージャを作成するか、名前付きクエリを使用することしかできません。

a)ストアドプロシージャを作成し、次を使用して呼び出します:-

session.CreateSqlQuery("exe sp_name")...

詳細...

b) マッピングで名前付きクエリを作成し、次のように呼び出します:-

session.GetNamedQuery("MyNamedQuery")...

詳細...

于 2012-05-22T06:29:18.540 に答える