尝试将以下查询转换为SQL,查询在MySQL上运行正常。问题似乎是GROUP BY
区域。即使我只使用1 GROUP BY
字段,我也会得到相同的错误。在InformaticaCloud中使用查询。
错误
“FROM Config_21Cent WHERE resp_ind ='保险'GROUP BY resp_Ind ;;]在JDBC连接中为空: [JDBC:Informatica的:SQLSERVER:// CBO-APS-inrpt03:1433;数据库名= SalesForce公司]。“
SELECT sum(Cast(Resp_Ins_Open_dol AS decimal(10,2))) as baltotal, carrier_code, carrier_name, carrier_grouping, collector_name, dataset_loaded, docnum, envoy_payer_id, loc, market, master_payor_grouping, plan_class, plan_name, resp_ins, resp_ind, resp_payor_grouping, Resp_Plan_Type, rspphone, state FROM Config_21Cent WHERE resp_ind = 'Insurance' GROUP BY (resp_ins + resp_payor_grouping + carrier_code + state + Collector_Name);
答案 0 :(得分:0)
您的整个查询无效。 group by
语句包含单个表达式,即一堆字段的总和。 select
语句包含数以万计的没有聚合的列。也许你打算做这样的事情:
select resp_ins, resp_payor_grouping, carrier_code, state, Collector_Name,
sum(Cast(Resp_Ins_Open_dol AS decimal(10,2))) as baltotal
from Config_21Cent
WHERE resp_ind = 'Insurance'
GROUP BY resp_ins, resp_payor_grouping, carrier_code, state, Collector_Name;
这将适用于两个数据库。
答案 1 :(得分:0)
SELECT
语句中的列必须是'GROUP BY'语句中列的子集(不是适当的子集,但是子集)。但SELECT
语句中的聚合没有这样的限制。可以有任意数量的聚合;甚至可以包括不在GROUP BY
语句中的列的聚合。