表TblUser,有字段Name和Branch,欲查找所有相同Branch的Name并添加到ComboBox(CboEmployee)中。比方,TblUser中有四条记录,第一、第二条记录的Branch一样,要想查找出这两条Branch相同的记录,并把这两条记录的Name字段添加到ComboBox中,请问代码如何写?

解决方案 »

  1.   

    select a.name from tbluser as a
    where a.branch in 
    (
      select b.branch from tbluser as b
      group by b.branch
      having count(name)>1
    )这样应该可以吧
      

  2.   

    一定要用SQL吗?我有点犯晕。
    用Table的Locate方法定位到第一条符合条件的记录后,有没有把记录指针移动到下一条符合相同条件的记录的方法?
      

  3.   

    上上楼说得没错
    我也是菜鸟只能解释他的思路:
    子查询是:选出那种branch的字段相同并且数据数量超过两条的记录的NAME
    然后在这个子查询的结果中选出NAME的名称
      

  4.   

    那么,把Name选出后,怎么把Name添加到ComboBox中?
      

  5.   

    Query1.close;
    Query1.sql.clear;
    Query1.sql.add('Select * From TblUser Where Branch =' + 条件)//是整型
    Query1.open;
    Query1.first;
    ComboBox1.items.clear;
    While not Query1.eof do
      begin
        Combobox1.items.add(Query1.FieldByName('Name').asstring);
        Query1.next;
      emd;
    如果Branch就因改为:
    Query1.sql.add('Select * From TblUser Where Branch =' + ''''+条件+'''')//是字符型
      

  6.   


    的先找出这些值,用如下语句就可以:select distinct nameid from TblUser  a1 where a1.branch in
    (select a2.branch from TblUser  a2)name是关键字,不能做字段名
    要改掉