以下是引用hm94657在2017-7-30 17:50:17的发言:
你好,我编这个命令select a.* from 你表 a,(select Bgbm from 你表 group by Bgbm having count(Bgbm)=1)b where a.Bgbm=b.Bgbm时显示的是语法错误,不知道是怎么回事。。。那像这样列数较多时,如何筛选出第一栏里面只出现过一次的数据呢,麻烦大神再指导一下
如果是VFP9.0,思路是这样的:
第一步,先用SELECT-SQL语句挑出Bgbm是唯一值的记录
SELECT Bgbm,COUNT(Bgbm) 次数 FROM 表文件名 GROUP BY Bgbm HAVING 次数=1
为什么输出项里要加上“COUNT(Bgbm) 次数”,是因为VFP9.0规定,只有在输出项里含聚合函数时才允许用GROUP BY...HAVING子句。
第二步,把第一步生成的表作为临时表,与原表进行联接查询,查询条件就是双方的Bgbm值相等。这样,就能达到你最后的要求了。根据这个思路,就有如下语句:
SELECT 不良反应结,T1.Bgbm,报告类型严,报告单位类,性别,怀疑并用,药品序号 ;
FROM 原表文件名 T1, ;
(SELECT Bgbm,COUNT(Bgbm) 次数 FROM 表文件名 ;
GROUP BY Bgbm HAVING 次数=1) T2 ;
WHERE T1.Bgbm=T2.Bgbm
第二步思路出来的语句就是能达到你最终目的的那条语句,直接使用就可以了。