La tua seconda query è molto più bella da scrivere come:
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 ;
Oppure, forse il select
deve essere:
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 prima versione presupponeva che i campi fossero azzerati nella seconda sottoquery perché erano NULL
nei dati, ma potrebbe non essere vero.)
Tuttavia, il software applicativo non è ancora abbastanza intelligente per identificare tali query scritte in modo imbarazzante, quindi non è questo il vero problema che stai affrontando. Se la query funziona nel database, ma non nell'applicazione, i problemi tipici sono:
- L'applicazione non è collegata al database corretto.
- L'applicazione non dispone di autorizzazioni sul database o sulla tabella.
- La query dell'applicazione è diversa dalla query eseguita nel database, in genere a causa di qualche problema di sostituzione.
- I risultati dell'esecuzione della query nell'applicazione non vengono interpretati correttamente.