在此请求中是否可以删除子查询,可能会替换为join notexist?
Axapta需要查询。
select count(*)
from rec join (
select max(`date`) d, id
from rec
where
`date`<"2013-05-03 00:00:00"
group by id
) drec on rec.id = drec.id and rec.`date` = drec.d
where
rec.value>0;
答案 0 :(得分:1)
您是否在尝试查找每个date
的最大id
的记录数?在这种情况下,类似于下面的代码可能在AX中起作用。我没有测试过,因为你没有提供表名等,所以可能需要进行一些调整:
YourTable rec;
YourTable rec2;
while select date, id, count(RecId) from rec
group by date, id
where rec.value > 0
&& rec.date < 03\05\2013
notexists join rec2
where rec2.id == rec.id
&& rec2.date > rec.date
&& rec2.date < 03\05\2013
{
info(strFmt('Id = %1, date = %2, number of records = %3', rec.id, rec.date, rec.RecId));
}