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 回答