|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
以前我们都用
A.EFFDT = (
SELECT MAX(AA.EFFDT)
FROM PS_JOB AA
WHERE AA.EMPLID = A.EMPLID
AND AA.EMPL_RCD = A.EMPL_RCD
AND AA.EFFDT < = SYSDATE)
AND A.EFFSEQ = (
SELECT MAX(AB.EFFSEQ)
FROM PS_JOB AB
WHERE AB.EMPLID = A.EMPLID
AND AB.EMPL_RCD = A.EMPL_RCD
AND AB.EFFDT = A.EFFDT)
但是实际上这样用可能更简洁一些:
AND %EffdtCheck(Dept_Tbl B,A,sysdate)
AND %EffdtCheck(CST_ITM_CLASS CC2,c2,%currentdatein)
SELECT a.SETID
, a.PROD_GRP_TYPE
, a.PRODUCT_GROUP
, a.DESCR
, a.GLOBAL_FLAG
, a.eff_status
FROM %Table(PROD_GROUP_TBL) a
WHERE (%EffdtCheck(PROD_GROUP_TBL b, a, %CurrentdateIn)
OR a.EFFDT > %CurrentDateIn)
AND MARKET = 'GBL'
When you view it in database, it is translated into the sql below:
SELECT a.setid, a.prod_grp_type, a.product_group, a.descr, a.global_flag
FROM ps_prod_group_tbl a
WHERE ( a.effdt =
(SELECT MAX (effdt)
FROM ps_prod_group_tbl b
WHERE b.setid = a.setid
AND b.prod_grp_type = a.prod_grp_type
AND b.product_group = a.product_group
AND b.effdt <=
TO_DATE (TO_CHAR (SYSDATE, 'YYYY-MM-DD'),
'YYYY-MM-DD'
))
OR a.effdt >
TO_DATE (TO_CHAR (SYSDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD')
)
AND market = 'GBL';
|
|