今天写了个查询语句,因为有些数据是放在历史库里,所以需要用到dblink
然后语句里面有group by语句
一加dblink就报错:不是group by表达式
但是一去掉dblink就可以正常查询
请问有什么解决方法吗
最好能贴出语句来,不然不好分析
--未加dblink
Select To_Char(T1.Recv_Time, 'yyyymm') As stat_date,
T1.Recv_Depart_Id,
t2.zb_channel_id,
Sum(Recv_Fee) /100 As Fee
From Tf_b_Paylog20171231 T1,
dw2.dim_Channel_All t2
where t1.recv_depart_id=t2.channel_id(+)
and t1.pay_fee_mode_code <> 4 ----剔除非现金优惠
And To_Char(T1.Recv_Time, 'yyyymm') >= '201701'
And To_Char(T1.Recv_Time, 'yyyymm') <= '201712'
Group By To_Char(T1.Recv_Time, 'yyyymm'),
T1.Recv_Depart_Id,
T1.Channel_Id,t2.zb_channel_id,t1.user_id
Having Sum(Recv_Fee) <> 0 ;
--加dblink后
--未加dblink
Select To_Char(T1.Recv_Time, 'yyyymm') As stat_date,
T1.Recv_Depart_Id,
t2.zb_channel_id,
Sum(Recv_Fee) /100 As Fee
From Tf_b_Paylog20161231@db1 T1,
dw2.dim_Channel_All t2
where t1.recv_depart_id=t2.channel_id(+)
and t1.pay_fee_mode_code <> 4 ----剔除非现金优惠
And To_Char(T1.Recv_Time, 'yyyymm') >= '201601'
And To_Char(T1.Recv_Time, 'yyyymm') <= '201612'
Group By To_Char(T1.Recv_Time, 'yyyymm'),
T1.Recv_Depart_Id,
T1.Channel_Id,t2.zb_channel_id,t1.user_id
Having Sum(Recv_Fee) <> 0 ;
with t1as (select * from Tf_b_Paylog20161231@db1),
select t1.xx from t1,dw2.dim_Channel_All t2
where **********************
group by t1.xx
这样会把数据链路在本地with方式成临时表,看能group by不