Oracle
 sql >> Database >  >> RDS >> Oracle

La query SQL funziona in PL/SQL ma non in Visual Studio

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.