是构造sql语句还是分部检索然后再组合结果集

04-04-15 fencer
手头有一个证券方面的项目,要求针对七八十张表进行检索和统计,管理员会自定义检索/统计单元,这些单元可能是这些表中的一个字段,也可能是一个统计列(涉及多张表中的多个字段)。用户在使用时会按照or and 组合这些检索/统计单元(用户在组合时会传递一些参数),最终获得命中的股票代码,并把所选的单元信息都显示出来。

我考虑的头都大了,觉得通过构造sql语句很麻烦。所以基本决定按照单元来组织检索语句。每个单元维护自己的sql语句和动态获得的参数。

采用按照每个单元先逐个获得结果集(股票代码),然后再对这些结果进行 or and 运算,最後得到需要的(股票代码结果集)

至于显示,我只能以单元为单位,按照该单元的sql,一列一列地取得这个单元的信息。

不知道这样是否可行,或者有类似经验的大虾请执教。

fencer
2004-04-16 13:11
难道就没有大虾做个回答?

jellyprince
2004-04-19 14:37
有个办法,不知是否适用,因为,你说的表太多了点。

select * from test t where t.a=t.a and t.b=t.b and t.c=t.c

and t.d=t.d

先把所有字段给列出来,如果选用了哪个字段,就把相应的地方给替换掉,如要按a 和 b 列查询,就可用参数把这里的t.a,t.b给替换掉,这样就不用动态构建SQL了。

当然我想这只是一种思路,具体实现还得看你的具体情况

我也在思考在EJB中组合查询的实现问题,如有好的办法,望共切磋

soarweiss@vip.sina.com

fencer
2004-04-19 16:55
我明白楼上的意思,不过我现在情况还不是这样:

一种最简单的情况:从列出的100个字断中(可能来自不同的表)中选出几个字段,然后加上一些参数,动态的构造成sql.

猜你喜欢