Oracle
 sql >> Base de données >  >> RDS >> Oracle

La requête SQL fonctionne en PL/SQL mais pas dans Visual Studio

Votre deuxième requête est tellement plus agréable à écrire que :

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 ;

Ou, peut-être le select doit être :

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 première version supposait que les champs étaient mis à zéro dans la deuxième sous-requête car ils sont NULL dans les données, mais cela pourrait ne pas être vrai.)

Cependant, le logiciel d'application n'est pas encore assez intelligent pour identifier ces requêtes écrites maladroitement, ce n'est donc pas le problème réel auquel vous êtes confronté. Si la requête fonctionne dans la base de données, mais pas dans l'application, les problèmes typiques sont :

  • L'application n'est pas connectée à la bonne base de données.
  • L'application n'a pas d'autorisations sur la base de données ou la table.
  • La requête de l'application est différente de la requête exécutée dans la base de données, généralement en raison d'un problème de substitution.
  • Les résultats de l'exécution de la requête dans l'application ne sont pas interprétés correctement.