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.