我想使用iReport生成报告。我应该将Area_code,units,condition(意为<
>
=
)作为参数。我想从 customer 表中获取一些字段,这些字段满足 calculatedbillamounthistory <或>
或=
个单位数>表。
举个例子,
SELECT Cus.Cusname,Cus.Cus_Address,Cus.CusID
FROM customer Cus, calculatedbillamounthistory Cal
WHERE Cal.consumedunits > 90 And Cus.CusID = Cal.cusid AND Cus.Area_code = Hr0111.
我应该将'&gt;', '90','Hr0111'值作为参数传递。
这是我的疑问:
SELECT Cus.Cusname,Cus.Cus_Address,Cus.CusID FROM customer Cus, calculatedbillamounthistory Cal WHERE Cal.consumedunits $(condition) $(units) AND Cus.CusID = Cal.cusid AND Cus.Area_code = $(Area_code);
当我将查询提供给jaspersoft时,它将显示错误:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$(condition) $(units) And Cus.CusID = Cal.cusid AND Cus.Area_code = $(Area_code)' at line 1"
有人能帮助我吗?
答案 0 :(得分:0)
如何使用参数的$P!{..}
语法,例如:
SELECT Cus.Cusname,Cus.Cus_Address,Cus.CusID FROM customer Cus, calculatedbillamounthistory Cal WHERE Cal.consumedunits $P!{condition} $P!{units} AND Cus.CusID = Cal.cusid AND Cus.Area_code = $P!{Area_code};
$P!{..}
语法在执行查询之前评估参数。使用$P{..}
准备好的语句,至少对condition
参数不起作用。
答案 1 :(得分:0)
对条件和单位参数使用单值输入控件,并在Ireport中尝试此查询
SELECT Cus.Cusname,Cus.Cus_Address,Cus.CusID
FROM customer Cus,calculatedbillamounthistory Cal
WHERE Cal.consumedunits $P{condition} $P{units}
AND Cus.CusID = Cal.cusid
AND Cus.Area_code = $P{Area_code};
答案 2 :(得分:0)
您可以将整个WERE部分出站到参数中并将其附加到您的查询中:
参数:WHERE(String)
WHERE =“Cal.consumedunits&gt; 90和Cus.CusID = Cal.cusid AND Cus.Area_code = Hr0111”
SQL: ELECT Cus.Cusname,Cus.Cus_Address,Cus.CusID 来自客户Cus,calculatedbillamounthistory Cal 在哪里$ P!{WHERE}