我有以下查询
select Obj.regcode,count(*)
FROM dbo.Objecten Obj
INNER JOIN dbo.Dossiers Dos ON obj.objectnr=Dos.objectnr
WHERE Dos.plan_gereed between '2014-01-01' and '2014-02-01'
group by obj.regcode having count(*) > 1
工作正常,它会累加并只显示具有多个注册码的那些。
现在我想再次拆分它们,所以我可以查看哪些dossiernr与注册码相结合。 (我需要先将它们分组才能确定在定义的时间段内多次使用哪些注册码)
所以我认为我的查询会是这样的:
SELECT obj.regcode, Dos.dossiernr
FROM dbo.objecten obj,
dbo.Dossiers Dos
WHERE obj.regcode IN ( select Obj.regcode,count(*)
FROM dbo.Objecten Obj
INNER JOIN dbo.Dossiers Dos ON obj.objectnr=Dos.objectnr
WHERE Dos.plan_gereed between '2014-01-01' and '2014-02-01'
group by obj.regcode
having count(*) > 1 )
AND obj.objectnr=Dos.objectnr
但是这个给出了以下错误:
当选择列表中只能指定一个表达式时 子查询不是用EXISTS引入的。
任何人都可以帮助我吗?
提前致谢
答案 0 :(得分:0)
只需从IN选择检查中删除count(*)
SELECT obj.regcode, Dos.dossiernr FROM dbo.objecten obj, dbo.Dossiers Dos WHERE obj.regcode IN ( select Obj.regcode FROM dbo.Objecten Obj INNER JOIN dbo.Dossiers Dos ON obj.objectnr=Dos.objectnr WHERE
Dos.plan_gereed between '2014-01-01' and '2014-02-01' group by obj.regcode having count(*) > 1 ) AND obj.objectnr=Dos.objectnr