2011-06-30 21 views
0

我想使用iReport生成報告。我應該給區域代碼,單位,條件(意思是<>=)作爲參數。我想從客戶表中滿足條件單位的一些字段<>=單位數計算單位歷史紀錄表。使用參數化查詢獲取「您的SQL語法錯誤」報告

作爲例子,

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. 

我應該通過'>''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

@Markus感謝ü幫助me.But它仍然無法正常工作。 –

+0

[JasperReports:將參數傳遞給查詢]可能的重複(http://stackoverflow.com/questions/11871042/jasperreports-passing-parameters-to-query) –

回答

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參數不起作用。

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}; 
0

可以出境遊總病例一部分爲參數,並追加了此信息查詢:

參數:WHERE(字符串)

WHERE =」 Cal.consumedunits> 90和Cus.CusID = Cal.cusid AND Cus.Area_code = Hr0111"

SQL: ELECT Cus.Cusname,Cus.Cus_Address,Cus.CusID 從客戶流失客戶,calculatedbillamounthistory卡爾 WHERE $ P!{} WHERE