17,086
社区成员
发帖
与我相关
我的任务
分享
SELECT FL.*,
TO_CHAR(FL.DT_FLWORINTERP, 'yyyy-mm-dd') || FL.FLWNO as DT_FLWORINTERPS --这里定义的伪列为什么在where语句中不能用呢???????????
FROM AIDSZH_SGRA_ADULT_FLW FL,
(SELECT CARD_ID,
MAX(TO_CHAR(F.DT_FLWORINTERP, 'yyyy-mm-dd') || F.FLWNO) DT_FLWORINTERP
FROM AIDSZH_SGRA_ADULT_FLW F
WHERE F.DT_FLWORINTERP <= TO_DATE('2009-11-30', 'yyyy-mm-dd')
AND F.ZONECODE LIKE '371081%'
GROUP BY F.CARD_ID) FMAX
WHERE fl.DT_FLWORINTERPS = FMAX.DT_FLWORINTERP
AND FL.CARD_ID = FMAX.CARD_ID
SELECT FL.*
FROM AIDSZH_SGRA_ADULT_FLW FL,
(SELECT CARD_ID,
MAX(TO_CHAR(F.DT_FLWORINTERP, 'yyyy-mm-dd') || F.FLWNO) DT_FLWORINTERP
FROM AIDSZH_SGRA_ADULT_FLW F
WHERE F.DT_FLWORINTERP <= TO_DATE('2009-11-30', 'yyyy-mm-dd')
AND F.ZONECODE LIKE '371081%'
GROUP BY F.CARD_ID) FMAX
WHERE ((TO_CHAR(FL.DT_FLWORINTERP, 'yyyy-mm-dd')) || FL.FLWNO) = FMAX.DT_FLWORINTERP
AND FL.CARD_ID = FMAX.CARD_ID
但我感觉这样写出来的sql很垃圾。