新手提问 主从表模糊查询问题

yangzi1028 2009-04-28 11:43:38
遇见个问题不是很清楚
现在有个主表是客户表,从表是车辆表,他们之间的关系是一对多,一个客户对应多辆车,但同时客户有可能没有车。
现在要通过模糊查询来查客户。
具体要求是这样的
根据客户姓名,客户电话(这个两个字段在客户表中)和 车牌号(在车辆表中)来模糊查客户。

当什么条件都不输入的话查询出来是全部的客户,不管有没有车,有几辆。同时客户对应车辆的数量。
当输入条件的时候根据条件模糊查询出满足条件的客户,同时显示车辆数

主要就是一个客户不管有几辆车都只显示一条数据

谢谢各位大侠赐教!!!!
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yang_ 2009-04-28
  • 打赏
  • 举报
回复
SELECT C.*,(SELECT COUNT(1) FROM 车辆表 WHERE 客户ID=C.客户ID) AS 车辆的数量
FROM 客户表 C
WHERE 客户姓名 LIKE '%' + @客户姓名 + '%'
AND 客户电话 LIKE '%' + @客户电话 + '%'
AND (@车牌号 = '' OR EXISTS (
SELECT 1 FROM 车辆表 WHERE 客户ID=C.客户ID AND 车牌号 LIKE '%' + @车牌号 + '%'
)
)
百年树人 2009-04-28
  • 打赏
  • 举报
回复
select 
a.客户姓名,
isnull(b.cnt,0) as 车辆数
from
客户表 a,
left join
(select 客户id,count(1) as cnt from 车辆表 where 车牌号=isnull(@车牌号,@车牌号) group by 客户id) b
on
a.客户id=b.客户id
where
a.客户姓名=isnull(@客户姓名,客户姓名)
and
a.客户电话=isnull(@客户电话,客户电话)

@车牌号/@客户姓名/@客户电话 是输入条件
ChinaJiaBing 2009-04-28
  • 打赏
  • 举报
回复

select a.客户姓名,a.客户电话,b.车辆 from 客户表 a left join 车辆表 b
on a.id=b.客户id
Andy__Huang 2009-04-28
  • 打赏
  • 举报
回复
全部客户
select a.client_id,a.client_name,b.num
from 客户表 a
left join (select client_id,count(*) as num from 车辆表 group by client_id) b
on a.client_id=b.client_id

按条件查
select a.client_id,a.client_name,b.num
from 客户表 a
left join (select client_id,count(*) as num from 车辆表 group by client_id) b
on a.client_id=b.client_id
where a.姓名=xxx and a.电话=xxx and a.车牌号
taoistong 2009-04-28
  • 打赏
  • 举报
回复




create proc taoistong
(@客户姓名 nvarchar(100)
,@客户电话 nvarchar(100)
,@车牌号 nvarchar(100)
)
as
SELECT C.*,isnull((SELECT COUNT(1) FROM 车辆表 WHERE 客户ID=C.客户ID),0) AS 车辆的数量
FROM 客户表 C
WHERE (客户姓名 = @客户姓名 or @客户姓名='')
AND (客户电话 =@客户电话 or @客户电话 ='')
AND (@车牌号 = '' OR EXISTS (
SELECT 1 FROM 车辆表 WHERE 客户ID=C.客户ID AND 车牌号 =@车牌号
)
)




给你写个存储过程!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧