我在网上搜索并发现许多人有同样的问题,但没有解决方案适合我。 我真的希望你能帮助我: 我有这个在PL / SQL中正常工作的ORACLE SQL查询:
select PROVIDER,sum(CALLS),sum(CHARGE),sum(DUR)
from (
select bzq_terminate_provider PROVIDER,callsnum CALLS,charge_amount CHARGE,at_call_dur_sec DUR
from usage_cycle_sum
where ban='80072922' and ben='1'
and subscriber_no='036585305'
and start_cycle_code ='20150207'
and feature_code_rank='1'
union
select bzq_terminate_provider PROVIDER,0 CALLS,charge_amount CHARGE,0 DUR
from usage_cycle_sum
where ban='80072922' and ben='1'
and subscriber_no='036585305'
and start_cycle_code ='20150207'
and feature_code_rank='2'
)
group by PROVIDER
我也试过这个其他版本也可以正常工作:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<%--color picker --%>
<script type="text/javascript" src="jscolor.js"></script>
<script type="text/javascript">
function add() {
document.body.innerHTML += "<input id=\"zaz1\" size=\"5\" class=\"color\" value=\"000000\"> ";
}
</script>
</head>
<body>
<input id="zaz" size="5" class="color" value="000000">
<p onclick="add()">add</p>
</body>
</html>
我的问题是,当我在Visual Studio Web应用程序中创建数据网格时,我收到一个错误:语法错误:期望标识符或带引号的标识符
连接正常,我检查了简单的选择查询以及我附加的第二个查询中的整个联合部分,它们有效! 但是当我使用这两个版本时,我得到了这个错误。
可能是什么问题?还有另一种解决方法吗? 感谢。
编辑21/06/2015 似乎visual studio不能很好地处理复杂的查询,我仍然在寻找解决方案,因为我的下一个查询更复杂......
答案 0 :(得分:1)
你的第二个查询写得好得多:
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 ;
或者,select
可能需要:
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
(第一个版本假设字段在第二个子查询中被清零,因为它们在数据中是NULL
,但这可能不是真的。)
但是,应用程序软件还不够智能,无法识别这些写得不好的查询,因此这不是您面临的实际问题。如果查询在数据库中有效,但在应用程序中无效,那么典型的问题是: