Tu segunda consulta es mucho más agradable de escribir como:
select bzq_terminate_provider as PROVIDER, sum(callsnum) as CALLS,
sum(charge_amount) as CHARGE, sum(at_call_dur_sec) as DUR
from usage_cycle_sum
where ban = '80072922' and ben = '1' and
subscriber_no = '036585305' and
start_cycle_code ='20150207' and
feature_code_rank in ('1', '2')
group by bzq_terminate_provider ;
O, tal vez el select
debe ser:
select bzq_terminate_provider as PROVIDER,
sum(case when feature = '1' then callsnum else 0 end) as CALLS,
sum(charge_amount) as CHARGE,
sum(case when feature = '1' then at_call_dur_sec else 0 end) as DUR
(La primera versión supuso que los campos se pusieron a cero en la segunda subconsulta porque son NULL
en los datos, pero eso podría no ser cierto.)
Sin embargo, el software de la aplicación aún no es lo suficientemente inteligente como para identificar consultas escritas de manera incómoda, por lo que ese no es el problema real al que se enfrenta. Si la consulta funciona en la base de datos, pero no en la aplicación, los problemas típicos son:
- La aplicación no está conectada a la base de datos correcta.
- La aplicación no tiene permisos en la base de datos o tabla.
- La consulta de la aplicación es diferente de la consulta que se ejecuta en la base de datos, generalmente debido a algún problema de sustitución.
- Los resultados de ejecutar la consulta en la aplicación no se interpretan correctamente.