Váš druhý dotaz je mnohem hezčí napsat jako:
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 ;
Nebo možná select
musí být:
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
(První verze předpokládala, že pole byla ve druhém dílčím dotazu vynulována, protože jsou NULL
v datech, ale to nemusí být pravda.)
Aplikační software však ještě není dostatečně chytrý, aby dokázal identifikovat takové nešikovně napsané dotazy, takže to není skutečný problém, kterému čelíte. Pokud dotaz funguje v databázi, ale ne v aplikaci, pak typické problémy jsou:
- Aplikace není připojena ke správné databázi.
- Aplikace nemá oprávnění k databázi nebo tabulce.
- Aplikační dotaz se liší od dotazu spuštěného v databázi, obvykle kvůli nějakému problému se záměnou.
- Výsledky spuštění dotazu v aplikaci nejsou správně interpretovány.