这样的查询语句怎么写,在线求招

Justin1818 2004-11-21 01:53:42
有六个表
--------------------- 结构如下: < 客户 >
a 表
a_id a_ename a_cname a_nature a_category

b 表 < 客户 的 别名
b_id b_ename b_cname b_aid

c 表 < 客户的 属性选项
c_id c_nature

d 表 < 客户的 产品种类
d_id d_category

e 表 < 客户的 供货商
e_id e_ename e_cname e_aid

f 表 < 客户的 出货商
f_id f_ename f_cname e_aid

---------------------------------------
有六个表
--------------------- 关系如下:

a 表 <存放客户的 中,英文名
a_id
a_ename // 英文名
a_cname // 中文名
a_nature // c 表 中的 c_id
a_category // d 表 中的 d_id

b 表 <存放客户的 别名
b_id
b_ename //客户的 别名 英文名
b_cname //客户的 别名 中文名
b_aid //a 表 中的 a_id

c 表 <存放客户的 属性选项 eg: 私营企业,外资企业,三资企业..
c_id
c_nature

d 表 <存放客户的 产品种类 选项 eg: 鞋货,....
d_id
d_category

e 表 <存放客户的 供货商信息
e_id
e_ename //供货 的 英文名
e_cname //供货 的 中文名
e_aid //a 表 中 的 a_id

f 表 <存放客户的 出货商信息
f_id
f_ename //出货 的 英文名
f_cname //出货 的 中文名
f_aid //a 表 中 的 a_id


要求作如下查询:
----------------------
<用户要求同时对别名实现模糊搜索,就是说用户输入的名称有可能是别名 ,而且可能是中文名,也可能是英文名;>
<注意: 客户有中文名; 客户的别名 也有中文名 之分
客户名称 : ________

客户是否有多个供货商: Yes |O| No |O|
-- --
客户是否有多个出货商: Yes |O| No |O|
-- --
客户的属性为: <下拉列表选项>
客户的产品种类为: <下拉列表选项>
----------------------------------------------
[Search]
如何实现, 请高手帮忙

...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Justin1818 2004-11-21
  • 打赏
  • 举报
回复
OK
结帖
Justin1818 2004-11-21
  • 打赏
  • 举报
回复
to: Yang_(扬帆破浪)
谢谢,我先试试

Justin1818 2004-11-21
  • 打赏
  • 举报
回复
对了,我仔细想了一下,不行,如果放在一个表中,就意味着,没加一个别名,客户表将新增一条记录,
<用户可能后来发现当前客户用了别名).实际上在业务关系上同一个客户的其它业务数据,只与一个
客户ID关联,放在同一表中会给其它业务数据的处理复杂化
Yang_ 2004-11-21
  • 打赏
  • 举报
回复
select ...
from
a
left join b on a.a_id=b.b_aid
left join c on a.a_nature=c.c_id
left join d on a.a_category=d.d_id
where (a.a_ename like '%输入的客户%' or a.a_cname like '%输入的客户%' or b.b_ename like '%输入的客户%' or b.b_cname like '%输入的客户%')
and c.c_nature='输入的属性'
and d.d_category='输入的产品种类'
and ...

客户是否有多个供货商: Yes |O| No |O|
客户是否有多个出货商: Yes |O| No |O|
这两个条件选中的时候再加条件,如
客户是否有多个供货商选中
and (select count(*) from e where e.e_aid=a.id)>1




Justin1818 2004-11-21
  • 打赏
  • 举报
回复
to: Yang_(扬帆破浪)
你说的也有道理,但是,对于同一个客户,可能用到多个别名,放在同一个表中是否会让a 表太大?
如果您有更好的建议请名示
谢谢
Yang_ 2004-11-21
  • 打赏
  • 举报
回复
a、b表应该合并
Justin1818 2004-11-21
  • 打赏
  • 举报
回复
补充一下,查询满足条件的所有客户

自己先顶一下

27,579

社区成员

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

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