大家帮我看看这样的检索怎么写SQL语句,先谢了。
现在表中有两个数据是一个范围一个是员工人数,一个是注册资金。
员工人数:201-300 人(注意  人 之前有个空格)
注册资金:人民币405万
我现在的SQL语句还得加一些条件来检索数据,假如:公司类型、行业等。
我用下面的SQL写的时候只能对已经检索出来的数据进行操作,而不能添加新的数据检索条件。大家帮忙看看怎么写这个SQL语句,先谢了。
select id,zczj from 
(
   select substring(zczj,3,(char_length(substring(zczj,3)))-2) as zczj,ID as id from qysj
)
as ss 
where ss.zczj < #endFunds# and ss.zczj > #startFunds#

解决方案 »

  1.   

    谢谢回复。不好意思。
    假设我现在有一个企业数据信息表(表简称:qysj)
    现有的字段如下;
    id(公司编号) gsmc(公司名称) ygrs(员工人数) zczj(公司注册资金) hy(所属行业) address(公司地址)现在有个高级数据检索功能;用户可以选择表的存在的字段条件可以是单个也可以是组合。
    员工人数存放规则:201-300 人(注意  人 之前有个空格) 也就是说公司员工人数规模是一个范围
    注册资金存放规则:人民币405万   select id,zczj from 

      select substring(zczj,3,(char_length(substring(zczj,3)))-2) as zczj,ID as id from qysj 

    as ss 
    where ss.zczj <= #注册资金最大数# and ss.zczj >= #注册资金最小数#
    假如现在用户选择了  公司注册资金和  公司员工人数做为数据检索条件,请问一下SQL怎么写。先谢了。
      

  2.   

    表字段数据类型:
    除了公司编号是bigint类型以外,其它字段多是varchar类型。
      

  3.   

    select id,zczj from 

      select substring(zczj,3,(char_length(substring(zczj,3)))-2) as zczj,ID as id from qysj 

    as ss 
    where ss.zczj between 注册资金最大数 and 注册资金最小数 and ygrs ss.zczj between 最少人数数 and 最大人数
      

  4.   

    select id,zczj from 
    from qysj sswhere (ss.zczj between 注册资金最大数 and 注册资金最小数) and (ygrs ss.zczj between 最少人数数 and 最大人数)
      

  5.   


    你要加什么条件,你这里有个子查询“select substring(zczj,3,(char_length(substring(zczj,3)))-2) as zczj,ID as id from qysj”了所以最后面的条件的字段,只能是这里的zczj和id了该一下你的句子
    select substring(zczj,3,(char_length(substring(zczj,3)))-2) as zczj,ID as id from qysj where substring(zczj,3,(char_length(substring(zczj,3)))-2)<#endFunds# and substring(zczj,3,(char_length(substring(zczj,3)))-2) > #startFunds#这里就还可以加条件了看样子你好像用的ibatis哟。
      

  6.   

    恩。数据层采用的是ibatis。谢谢大家的回复。
    问题已经解决:
    select ID,ZCZJ,TEL,GSM,ADDRESS,MAINPORS,YGRS,QYLX,INDUSTRY,RUNMODEL from 
    (
    select substring(s.ZCZJ,4,(char_length(substring(s.ZCZJ,4)))-2) as ZCZJ,
    s.ID as ID,s.TEL as TEL,s.GSM as GSM,s.ADDRESS as ADDRESS,s.MAINPORS as MAINPORS,
    substring(substring(s.YGRS,locate('-',s.YGRS)+1),1,char_length(substring(s.YGRS,locate('-',s.YGRS)+1))-2) as YGRS,
    s.QYLX as QYLX,s.INDUSTRY as INDUSTRY,s.RUNMODEL as RUNMODEL
    from qysj as s
    )as ss
    where (condition);