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

SQL-forespørgsel virker i PL/SQL, men ikke i Visual Studio

Din anden forespørgsel er så meget bedre at skrive som:

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 ;

Eller måske select skal være:

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

(Den første version antog, at felterne blev nulstillet i den anden underforespørgsel, fordi de er NULL i dataene, men det er måske ikke sandt.)

Imidlertid er applikationssoftware endnu ikke smart nok til at identificere sådanne akavet skrevne forespørgsler, så det er ikke det egentlige problem, du står over for. Hvis forespørgslen fungerer i databasen, men ikke i applikationen, er typiske problemer:

  • Applikationen er ikke forbundet til den rigtige database.
  • Applikationen har ikke tilladelser til databasen eller tabellen.
  • Applikationsforespørgslen er forskellig fra den forespørgsel, der køres i databasen, typisk på grund af et substitutionsproblem.
  • Resultaterne fra at køre forespørgslen i applikationen fortolkes ikke korrekt.



  1. mySQL - Indsæt i tre tabeller

  2. Hvor er Oracle Bug Database?

  3. Heltal uden for rækkevidde i PostgreSQL-databasen

  4. Sådan aktiveres ad hoc-distribuerede forespørgsler