select * from TABEL1 where ID in(select ID from TABEL1 where NAME=:a orNAME=:b group by ID having count(*)>1)运行delphi没报错,但是与之关联的DBGrid却什么也没有显示,
改成select ID from TABEL1 where NAME=:a orNAME=:b group by ID having count(*)>1后可以显示过滤出的ID我只是想把过滤出的ID那条记录的全部字段记录都显示到DBGrid上例如:
 
id   name   score   tel
1     aaa    60     142
1     bbb    65     541
1     ccc    21     113
2     aaa    11     555
2     eee    68     874
3     bbb    78     999
3     fff    55     666我想得到过滤后显示 比如我只要知道 哪个ID是同时name=aaa而且也有name=bbb,很明显是id=1
用 select ID from TABEL1 where NAME=:a orNAME=:b group by ID having count(*)>1 
parameters.ParamByName('a').value:='aaa';
parameters.ParamByName('b').value:='bbb';  可返回1但是如果我想同时返回id=1的所有记录怎么办呢?
用 select * from TABEL1 where ID in(select ID from TABEL1 where NAME=:a orNAME=:b group by ID having count(*)>1)       DBGrid没有任何记录显示出。望赐教!
      

解决方案 »

  1.   

    不知道是不是我的 select * from where XXX in(....)没用正确啊?
      

  2.   

    select * from TABEL1 where ID in(select ID from TABEL1 where NAME=:a orNAME=:b group by ID having count(*)>1)
    放到查询分析器中执行看看有没有结果。
      

  3.   

    select * from where XXX in(....)这样是没有错得。