delphi 按次数统计查询

求助!一个酒店管理系统大作业的一分……想要实现查询中筛选出在酒店住宿超过5次的客人现有的数据库的表为入住表和客户信息表客户表和入住表都没有计算单一用户入住次数的计数项估计... 求助!
一个酒店管理系统大作业的一分……
想要实现查询中筛选出在酒店住宿超过5次的客人
现有的数据库的表为入住表和客户信息表
客户表和入住表都没有计算单一用户入住次数的计数项
估计只能通过查找入住表中同一个用户ID出现过5次以上来实现
可是……怎么实现捏……
谢绝复制粘贴一族……
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('select client.ID as 客户身份证号,client.name as 客户姓名,client.telephone as 客户联系电话,client.Vip as 是否为VIP用户 from client inner join RuZhu on client.ID=RuZhu.ClientID ');
AdoQuery1.SQL.Add('group by RuZhu.ClientID having count(RuZhu.ClientID)>5');
AdoQuery1.Open;

重要代码在这里,运行时提示 client既不存在于聚合函数又不存在于groupby中云云……
按2L3L的做法做得,不知道为什么错,期待高手解答!!
展开
 我来答
ou_youliang
2009-06-08 · 超过20用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:75.4万
展开全部
select * from (
select a.客户ID,a.客户名,
(select count(*) from 入住表 b
where b.客户ID = a.客户ID) as 入住次数
from 客户表 a)
where 入住次数 > 5

语法就是这样,你可以参考我的SQL语句在你的数据库中执行一下,试试结果正不正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
silvernii
2009-06-07 · TA获得超过3638个赞
知道大有可为答主
回答量:1667
采纳率:0%
帮助的人:1602万
展开全部
通过查询姓名和身份证,取返回的结果的记录条数,如果大于等于5次,那么就把它拎出来.这个记录条数是查询使用的对象的一个成员,直接用.操作就可以获取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tevistang
2009-06-07 · TA获得超过504个赞
知道小有建树答主
回答量:662
采纳率:0%
帮助的人:458万
展开全部
select a.*
from 客户表 a inner join 入住表 b
on a.客户ID=b.客户ID
group by b.客户ID
having count(b.客户ID)>5

大概就是这么个意思,你自己改改就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式