论坛: 网站建设 标题: 今天无聊(俺来灌水) 复制本贴地址    
作者: NetFog [q70213526]    版主   登录
俺近日在写一个网上办公系统时,碰到的问题,已经解决
公司的市场部门按地域划分.如,湖南市场,浙江市场等.公司销售中心总台要发布公告,可以指定任意市场或者全部市场部门可以查看公告.有些公告是不能让另外的市场看到.呵呵.公司政策这样,不让各区域市场有接触的机会.防止各市场的子部门知道公司的战略意图,但也有全部市场部门可见的.俺的实现方法如下.

区域市场信息表
Market
MarketID  MarketName AdminID  .....
  1      湖南市场      1    ......
  2      浙江市场      2    .....


建立公告表
Atable
Aid  AName  ACanViewMarketID  AContent .......
1    公告1          2            内容2
2    公告2          1            内容1
3    公告3          0            全体公告

Atable表中,ACanViewMarketID为零表示所有市场均可见.为1表示只有湖南市场可见这条公告.

现在我想在销售中心管理后台显示这些内容以便修改.显示要求如下:

Id    公 告 名    可 见 市 场 
1      公告1        浙江市场
2      公告2        湖南市场
3      公告3        全部可见

开始俺用如下SQL语句
selec AT.id,AT.Aname,MK.MarketName from Atable as AT,Market as MK where AT.ACanViewMarketID = MK.MarketID
这句肯定是出问题的.因为Atable中的ACanViewMarketID有为零的记录..不无做到上面说的显示效果.

俺用了另一种方法.那就是视图
在ACCESS中..创建视图AtableView.直接写SQL.如下.
selec AT.id,AT.Aname,MK.MarketName from Atable as AT,Market as MK where AT.ACanViewMarketID = MK.MarketID
union
selec AT.id,AT.Aname,'全部可见' as MarketName from Atable as AT,Market as MK where AT.ACanViewMarketID = 0

要实现要求的显示效果.执行如下SQL就OK了咯..
select id,Aname,MarketName from AtableView
创建了视图就是方便.咕嘟咕嘟..

地主 发表时间: 05-11-16 15:36

回复: NetFog [q70213526]   版主   登录
没人??俺自己顶下..SQL语句最好玩了.

B1层 发表时间: 05-11-16 20:04

论坛: 网站建设

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号