select count(1) from (select rownum iRow,PKG.* from (
select *
from (select a.GRID_AREA,
a.area_code,
t.billing_month,
t.grid_id,
t.grid_name,
b.guide_no,
b.guide_name,
c.agent_no,
c.agent_name,
nvl(sum(total), 0) total,
nvl(sum(retotal), 0) retotal,
nvl(sum(ac_pay), 0) ac_pay,
nvl(sum(re_pay), 0) re_pay
from info_t t,
info_b a,
info_c b,
info_g c
where t.grid_id = a.GRID_ID
and c.agent_no = t.net_no
and c.guide_no = b.guide_no
and 1 = 1
and a.area_code = '53005'
and t.billing_month >= '200809'
and t.billing_month <= '200809'
group by a.GRID_AREA,
a.area_code,
t.billing_month,
t.grid_id,
t.grid_name,
b.guide_no,
b.guide_name,
c.agent_no,
c.agent_name)
order by grid_id ,billing_month desc)PKG)
select *
from (select a.GRID_AREA,
a.area_code,
t.billing_month,
t.grid_id,
t.grid_name,
b.guide_no,
b.guide_name,
c.agent_no,
c.agent_name,
nvl(sum(total), 0) total,
nvl(sum(retotal), 0) retotal,
nvl(sum(ac_pay), 0) ac_pay,
nvl(sum(re_pay), 0) re_pay
from info_t t,
info_b a,
info_c b,
info_g c
where t.grid_id = a.GRID_ID
and c.agent_no = t.net_no
and c.guide_no = b.guide_no
and 1 = 1
and a.area_code = '53005'
and t.billing_month >= '200809'
and t.billing_month <= '200809'
group by a.GRID_AREA,
a.area_code,
t.billing_month,
t.grid_id,
t.grid_name,
b.guide_no,
b.guide_name,
c.agent_no,
c.agent_name)
order by grid_id ,billing_month desc)PKG)
select *
from (select a.GRID_AREA,
a.area_code,
t.billing_month,
t.grid_id,
t.grid_name,
b.guide_no,
b.guide_name,
c.agent_no,
c.agent_name,
nvl(sum(total), 0) total,
nvl(sum(retotal), 0) retotal,
nvl(sum(ac_pay), 0) ac_pay,
nvl(sum(re_pay), 0) re_pay
from info_t t,
info_b a,
info_c b,
info_g c
where t.grid_id = a.GRID_ID
and c.agent_no = t.net_no
and c.guide_no = b.guide_no
and 1 = 1
and a.area_code = '53005'
and t.billing_month >= '200809'
and t.billing_month <= '200809'
group by a.GRID_AREA,
a.area_code,
t.billing_month,
t.grid_id,
t.grid_name,
b.guide_no,
b.guide_name,
c.agent_no,
c.agent_name)
order by grid_id ,billing_month desc)PKG)
这条脚本有数据,但count就没有数据
难道是因为没有commit;
?
FROM (SELECT ROWNUM IROW, PKG.*
FROM (SELECT A.GRID_AREA,
A.AREA_CODE,
T.BILLING_MONTH,
T.GRID_ID,
T.GRID_NAME,
B.GUIDE_NO,
B.GUIDE_NAME,
C.AGENT_NO,
C.AGENT_NAME,
NVL(SUM(TOTAL), 0) TOTAL,
NVL(SUM(RETOTAL), 0) RETOTAL,
NVL(SUM(AC_PAY), 0) AC_PAY,
NVL(SUM(RE_PAY), 0) RE_PAY
FROM INFO_T T, INFO_B A, INFO_C B, INFO_G C
WHERE T.GRID_ID = A.GRID_ID
AND C.AGENT_NO = T.NET_NO
AND C.GUIDE_NO = B.GUIDE_NO
AND 1 = 1
AND A.AREA_CODE = '53005'
AND T.BILLING_MONTH >= '200809'
AND T.BILLING_MONTH <= '200809'
GROUP BY A.GRID_AREA,
A.AREA_CODE,
T.BILLING_MONTH,
T.GRID_ID,
T.GRID_NAME,
B.GUIDE_NO,
B.GUIDE_NAME,
C.AGENT_NO,
C.AGENT_NAME) PKG)
SELECT COUNT(1)
FROM (SELECT A.GRID_AREA,
A.AREA_CODE,
T.BILLING_MONTH,
T.GRID_ID,
T.GRID_NAME,
B.GUIDE_NO,
B.GUIDE_NAME,
C.AGENT_NO,
C.AGENT_NAME,
NVL(SUM(TOTAL), 0) TOTAL,
NVL(SUM(RETOTAL), 0) RETOTAL,
NVL(SUM(AC_PAY), 0) AC_PAY,
NVL(SUM(RE_PAY), 0) RE_PAY
FROM INFO_T T, INFO_B A, INFO_C B, INFO_G C
WHERE T.GRID_ID = A.GRID_ID
AND C.AGENT_NO = T.NET_NO
AND C.GUIDE_NO = B.GUIDE_NO
AND 1 = 1
AND A.AREA_CODE = '53005'
AND T.BILLING_MONTH >= '200809'
AND T.BILLING_MONTH <= '200809'
GROUP BY A.GRID_AREA,
A.AREA_CODE,
T.BILLING_MONTH,
T.GRID_ID,
T.GRID_NAME,
B.GUIDE_NO,
B.GUIDE_NAME,
C.AGENT_NO,
C.AGENT_NAME
ORDER BY GRID_ID, BILLING_MONTH DESC)
order by t.grid_id ,t.billing_month desc 试试
原因很简单,没有同步。
脚本中读的是缓冲区中的脏数据,而count(*)=0是他在sqlplus中执行的。
不知LZ的问题是否也如此。
是不是在插入时忘记 COMMIT 了?
导致在其它地方查询查不到?