Je tweede vraag is zoveel leuker om te schrijven 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 ;
Of misschien de select
moet zijn:
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
(De eerste versie ging ervan uit dat de velden in de tweede subquery op nul werden gezet omdat ze NULL
zijn in de gegevens, maar dat is misschien niet waar.)
Applicatiesoftware is echter nog niet slim genoeg om dergelijke onhandig geschreven vragen te herkennen, dus dat is niet het werkelijke probleem waarmee u te maken hebt. Als de query werkt in de database, maar niet in de toepassing, dan zijn typische problemen:
- De applicatie is niet verbonden met de juiste database.
- De applicatie heeft geen rechten voor de database of tabel.
- De toepassingsquery verschilt van de query die in de database wordt uitgevoerd, meestal vanwege een vervangingsprobleem.
- De resultaten van het uitvoeren van de query in de toepassing worden niet correct geïnterpreteerd.