我正在使用oracle fusion和我正在使用的其中一个应用程序(值集)不允许我在select语句中使用函数,而from部分有200个字符的限制。
这个查询给了我想要的东西,但是我不能将这个总和与选择 -
一起使用SELECT SUM(d.ABS_UNITS) from PER_ALL_PEOPLE_F b, ANC_ABSENCE_PLANS_F_TL c,
ANC_PER_ABS_PLAN_ENTRIES d
WHERE
d.PERSON_ID = b.PERSON_ID
AND c.ABSENCE_PLAN_ID = d.ABSENCE_PLAN_ID
AND c.name = 'FMLA LWOP'
and d.start_date between '2017-04-02' and '2017-04-15'
AND b.PERSON_NUMBER = p_num
我也尝试了这个但是有字符限制问题 -
Select aa.bb from
(SELECT SUM(d.ABS_UNITS) as bb from PER_ALL_PEOPLE_F b,
ANC_ABSENCE_PLANS_F_TL c, ANC_PER_ABS_PLAN_ENTRIES d
WHERE
d.PERSON_ID = b.PERSON_ID
AND c.ABSENCE_PLAN_ID = d.ABSENCE_PLAN_ID
AND c.name = 'FMLA LWOP'
and d.start_date between '2017-04-02' and '2017-04-15'
AND b.PERSON_NUMBER = p_num
) aa
这种方法是我一直在努力将总和放在where子句中,但它没有返回任何东西。
Select
d.ABS_UNITS
FROM
PER_ALL_PEOPLE_F b, ANC_ABSENCE_PLANS_F_TL c, ANC_PER_ABS_PLAN_ENTRIES d
WHERE
d.PERSON_ID = b.PERSON_ID
AND c.ABSENCE_PLAN_ID = d.ABSENCE_PLAN_ID
AND c.name = 'FMLA LWOP'
AND b.PERSON_NUMBER = pnum
and d.start_date between '2017-04-02' and '2017-04-15'
AND d.ABS_UNITS = (SELECT SUM(d.ABS_UNITS) from PER_ALL_PEOPLE_F b,
ANC_ABSENCE_PLANS_F_TL c, ANC_PER_ABS_PLAN_ENTRIES d
WHERE
d.PERSON_ID = b.PERSON_ID
AND c.ABSENCE_PLAN_ID = d.ABSENCE_PLAN_ID
AND c.name = 'FMLA LWOP'
and d.start_date between '2017-04-02' and '2017-04-15'
AND b.PERSON_NUMBER = pnum
)
非常感谢任何意见和建议。
答案 0 :(得分:0)
我没有使用Fusion应用程序 如果我不明白错误,那么您在选择中对字符限制和功能有限制。
你的'在哪里'条款很长,考虑到你的性格限制。您可以使用ALIAS缩短数据库级别的列和表。然后自定义您的查询。
答案 1 :(得分:0)
感谢所有的输入,我真的很感激。我找到了一个解决方法,Oracle Fusion在我正在使用的脚本语言中隐藏了一些函数,这些函数没有记录,但可以通过sql找到。非常令人沮丧,但感谢所有的反馈
答案 2 :(得分:-1)
您不能在SUM
子句中使用聚合函数(例如WHERE
),因为WHERE
会在物理上限制行。您应在GROUP BY
子句中聚合以逻辑限制输出。