Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL-Abfrage funktioniert in PL/SQL, aber nicht in Visual Studio

Ihre zweite Abfrage ist so viel schöner zu schreiben als:

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 ;

Oder vielleicht select muss sein:

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

(Die erste Version ging davon aus, dass die Felder in der zweiten Unterabfrage auf Null gesetzt wurden, weil sie NULL sind in den Daten, aber das stimmt möglicherweise nicht.)

Die Anwendungssoftware ist jedoch noch nicht intelligent genug, um solche umständlich geschriebenen Abfragen zu erkennen, sodass das eigentliche Problem nicht ist, mit dem Sie konfrontiert sind. Wenn die Abfrage in der Datenbank funktioniert, aber nicht in der Anwendung, dann sind typische Probleme:

  • Die Anwendung ist nicht mit der richtigen Datenbank verbunden.
  • Die Anwendung hat keine Berechtigungen für die Datenbank oder Tabelle.
  • Die Anwendungsabfrage unterscheidet sich von der in der Datenbank ausgeführten Abfrage, normalerweise aufgrund eines Substitutionsproblems.
  • Die Ergebnisse der Ausführung der Abfrage in der Anwendung werden nicht richtig interpretiert.