>>SET ENGINEBEHAVIOR 70 >>CREATE CURSOR cTest (God N(4), Mes N(2), MesCrea N(2), Egn C(10)) >>INSERT INTO cTest VALUES (2003,11,11,"6504266641") >>INSERT INTO cTest VALUES (2003,12,12,"6504266641") >>INSERT INTO cTest VALUES (2004, 1, 1,"6504266641") >>INSERT INTO cTest VALUES (2004, 2, 2,"6504266641") >> >> >>fld_egn = "6504266641" >>from_period = {^2003/05/15} >> >>SELECT AAAAAAAA.*; >>FROM cTest AAAAAAAA; >>WHERE AAAAAAAA.Egn == fld_egn AND; >> STR(AAAAAAAA.God,4)+STRZERO(AAAAAAAA.Mes,2)+STRZERO(AAAAAAAA.MesCrea,2) IN; >> (SELECT MAX(STR(BBBBB.God,4)+STRZERO(BBBBB.Mes,2)+STRZERO(BBBBB.MesCrea,2)); >> FROM cTest BBBBB; >> WHERE BBBBB.Egn == fld_egn .AND.; >> STR(BBBBB.God,4)+STRZERO(BBBBB.Mes,2) == LEFT(DTOS(from_period),6)); >>INTO CURSOR cMaxRec READWRITE >>BROWSE NORMAL && NOT Correct -> ONE RECORD WITH 2003, 11,11, [6504266641]. I want records for 200505 >> >>** BUT >>SELECT MAX(STR(BBBBB.God,4)+STRZERO(BBBBB.Mes,2)+STRZERO(BBBBB.MesCrea,2)); >> FROM cTest BBBBB WHERE BBBBB.Egn == fld_egn .AND.; >> STR(BBBBB.God,4)+STRZERO(BBBBB.Mes,2) == LEFT(DTOS(from_period),6); >>INTO CURSOR Test1 >> >>SELECT AAAAAAAA.*; >>FROM cTest AAAAAAAA; >>WHERE AAAAAAAA.Egn == fld_egn AND; >> STR(AAAAAAAA.God,4)+STRZERO(AAAAAAAA.Mes,2)+STRZERO(AAAAAAAA.MesCrea,2) IN; >> (SELECT * FROM Test1); >>INTO CURSOR cMaxRec READWRITE >>BROWSE NORMAL && Correct NO RECORDS >> >> >>SET ENGINEBEHAVIOR 90 >> >>SELECT AAAAAAAA.*; >>FROM cTest AAAAAAAA; >>WHERE AAAAAAAA.Egn == fld_egn AND; >> STR(AAAAAAAA.God,4)+STRZERO(AAAAAAAA.Mes,2)+STRZERO(AAAAAAAA.MesCrea,2) IN; >> (SELECT MAX(STR(BBBBB.God,4)+STRZERO(BBBBB.Mes,2)+STRZERO(BBBBB.MesCrea,2)); >> FROM cTest BBBBB; >> WHERE BBBBB.Egn == fld_egn .AND.; >> STR(BBBBB.God,4)+STRZERO(BBBBB.Mes,2) == LEFT(DTOS(from_period),6)); >>INTO CURSOR cMaxRec READWRITE >>BROWSE NORMAL && Correct - NO RECORDS >> >> >>FUNCTION STRZERO(lnNumber, lnSigns) >>RETURN PADL(TRANSFORM(lnNumber),lnSigns,"0") >>>>
>CLEAR > > >CREATE CURSOR cTest (God N(4), Mes N(2), MesCrea N(2), Egn C(10)) >INSERT INTO cTest VALUES (2003,11,11,"6504266641") >INSERT INTO cTest VALUES (2003,12,12,"6504266641") >INSERT INTO cTest VALUES (2004, 1, 1,"6504266641") >INSERT INTO cTest VALUES (2004, 2, 2,"6504266641") > > >fld_egn = "6504266641" >from_period = {^2003/05/15} > >SET ENGINEBEHAVIOR 70 >TEST() > >SET ENGINEBEHAVIOR 80 >TEST() > >SET ENGINEBEHAVIOR 90 > >TEST() > > >PROCEDURE TEST > >? "ENGINEBEHAVIOR",SET("EngineBehavior") > >selectMax =[SELECT MAX(STR(God,4)+PADL(mes,2,"0")+PADL(MesCrea,2,"0")); > FROM cTest WHERE Egn == fld_egn .AND.; > STR(God,4)+PADL(mes,2,"0") == LEFT(DTOS(from_period),6)] > >&selectMax INTO CURSOR Test1 > >? _TALLY > >SELECT *; >FROM cTest ; >WHERE Egn == fld_egn AND; > STR(God,4)+PADL(mes,2,"0")+PADL(MesCrea,2,"0") IN (&selectMax); >INTO CURSOR cMaxRec >? _TALLY >