|
发表于 2014-7-30 10:57:42
|
显示全部楼层
用action参考
public static Table parameterFilterQuery(String name, String id){
String oracle = "SELECT RPRODUCTID , RPRODUCTNAME , (SELECT RCATEGORYNAME FROM DEMO_REPORTPRODUCTCATEGORY WHERE DEMO_REPORTPRODUCTCATEGORY.RCATEGORYID = DEMO_REPORTPRODUCTS.RCATEGORYID) AS RCATEGORYNAME , (SELECT RCOMPANYNAME FROM DEMO_REPORTSUPPLIERS WHERE DEMO_REPORTSUPPLIERS.RSUPPLIERID = DEMO_REPORTPRODUCTS.RSUPPLIERID)AS RCOMPANYNAME,RQUANTITYPERUNIT,RUNITPRICE,RUNITSINSTOCK FROM DEMO_REPORTPRODUCTS";
String mssql = "SELECT RPRODUCTID , RPRODUCTNAME , (SELECT RCATEGORYNAME FROM DEMO_REPORTPRODUCTCATEGORY WHERE DEMO_REPORTPRODUCTCATEGORY.RCATEGORYID = DEMO_REPORTPRODUCTS.RCATEGORYID) AS RCATEGORYNAME , (SELECT RCOMPANYNAME FROM DEMO_REPORTSUPPLIERS WHERE DEMO_REPORTSUPPLIERS.RSUPPLIERID = DEMO_REPORTPRODUCTS.RSUPPLIERID)AS RCOMPANYNAME,RQUANTITYPERUNIT,RUNITPRICE,RUNITSINSTOCK FROM DEMO_REPORTPRODUCTS";
oracle += " WHERE 1=1 ";
mssql += " WHERE 1=1 ";
if(!"".equals(name)){
oracle += "and RPRODUCTNAME like '%"+name+"%' ";
mssql += "and RPRODUCTNAME like '%"+name+"%' ";
}
if(!"".equals(id)){
oracle += String.format("and RPRODUCTID = '%s' ", id);
mssql += String.format("and RPRODUCTID = '%s' ", id);
}
HashMap<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
sqlMap.put(DatabaseProduct.ORACLE.name(),oracle);
sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
sqlMap.put(DatabaseProduct.KINGBASE.name(),oracle);
sqlMap.put(DatabaseProduct.SYBASE.name(),mssql);
sqlMap.put(DatabaseProduct.DB2.name(),oracle);
return SQL.select(sqlMap,null,"/demo/report/data");
}
例子中的是sql自己可以用ksql实现,不同的条件拼接不同的where条件
以上内容出自管理员 jishuang |
|