У меня есть класс данных, который получает данные из запросов ниже. Мой вопрос заключается в том, почему первый запрос не работает, но второй работает, если я перемещаю одну из процедур cf_cbp_GetBusParm( 'TITL', 'TAEM', code, TODAY) email
в INNER JOIN
Класс данных:
import io.ebean.Finder
import javax.persistence.Entity
import javax.persistence.Id
@Entity
data class TA(
@Id
val code: String? = null,
val name: String? = null,
val email: String? = null,
val rc: String? = null,
val cco: String? = null,
val vsp: String? = null
) {
companion object Find : Finder<String?, TA>(TA::class.java) {
override fun all() : List<TA> {
val sql = """
SELECT a.code, a.desc as name, c.email, cf_ccl_desccode( 'NSRC', a.code ) rc,
cf_ccl_desccode( 'NSCO', a.code ) cco, cf_ccl_desccode( 'NSVP', a.code ) vsp
FROM crs_sys_code a
INNER JOIN (
SELECT code, cf_cbp_GetBusParm( 'TITL', 'TAEM', code, TODAY) email
FROM crs_sys_code
where scg_code = 'NSTA'
) c ON a.code = c.code
WHERE scg_code = 'NSTA'
AND length(a.code) = 3
ORDER BY a.code
""".trimIndent()
return TA.nativeSql(sql).findList()
}
}
}
Запросы:
SELECT code, desc as name, cf_cbp_GetBusParm( 'TITL', 'TAEM', code, TODAY) email, cf_ccl_desccode( 'NSRC', code ) rc,
cf_ccl_desccode( 'NSCO', code ) cco, cf_ccl_desccode( 'NSVP', code ) vsp
FROM crs_sys_code
where scg_code = 'NSTA'
and length(code) = 3
and status = 'CURR'
order by code
_________________________________________________________________________________________________________
SELECT a.code, a.desc as name, c.email, cf_ccl_desccode( 'NSRC', a.code ) rc,
cf_ccl_desccode( 'NSCO', a.code ) cco, cf_ccl_desccode( 'NSVP', a.code ) vsp
FROM crs_sys_code a
INNER JOIN (
SELECT code, cf_cbp_GetBusParm( 'TITL', 'TAEM', code, TODAY) email
FROM crs_sys_code
where scg_code = 'NSTA'
) c ON a.code = c.code
WHERE scg_code = 'NSTA'
AND length(a.code) = 3
AND status = 'CURR'
ORDER BY a.code