????????????????????????????????????我需要根据用户的权限在文本框中显示:text1.text=菜品总数量 
                  text2.text=菜品总金额
-------------------------------------------------------------------------在数据库中设两个表,一个是用户权限表(图1)另一个是明晰表(图2)我是想当用户登录后根据自己的权限来显示相应的数据,权限号1,2,3,4表示可以显示明晰表中相应权限号的数据,如果权限号是2,3那么就只能显示明晰表2和3的数据了。图1(权限表)
 编码   姓名   密码   权限号
 --------------------------------
 001    张三   2     1,2,3,4
 002    李四  1     3,4''''''''''''''''''''''''''''''''''''''''''''''
图2(明晰表)
 编号   名称   数量   金额    权限号
 --------------------------------
 123    小白菜  2      2.3   1
 123    大白菜  2      0.5   3
 123    小西瓜  2      22    3
 123    黄瓜   2      5.6   2
 123    土豆   2      55    4
请问该如何查询实现?
我需要根据用户的权限在文本框中显示:text1.text=菜品总数量 
                  text2.text=菜品总金额

解决方案 »

  1.   

    首先在系统登录时,保存用户权限字符串,比如(1,2,3,4)
    在数据显示的Form_load事情中,根据不同的权限等级做不同的查询
    strSql=select sum(数量) as 数量,sum(金额) as 金额 from 明晰表 a where a.权限号 in (1,2,3,4)
      

  2.   

    create table #t1(
    code  varchar(100),
    name  varchar(100),
    password  varchar(20),
    admin  varchar(100)
    )
    insert into #t1(code,name,password,admin)
    select  '001', '三','2', '1,2,3,4'union all
    select ' 002','四','1','3,4'
    create table #t2 (
    code varchar(100),
    name varchar(100),
    numbe1 numeric(10,5),
    money1 numeric(10,5),
    admin varchar(100)
    )
    insert into #t2
    select  '123','小白菜','2','2.3','1' union all
    select '123','大白菜','2','0.5','3'  union all
     select '123','小西瓜','2',' 22','3' union all
     select '123','黄瓜','2','5.6','2' union all
    select '123','土豆','2', '55',' 4'  select sum(numbe1),sum(money1) from #t2 as b where  charindex  (b.admin,(select a.admin from #t1 as a where a.code='001'))>0code是你登录用户的编号
      

  3.   

    权限号存放 :1,2,3,4 不符合第三范式规则
     并使用 in 子句 是极其没有效率的,在明细多的情况下,速度将很慢权限号只用一个 bigint 字段来存
    每个权限号 用 2的N次方来代替
    如权限1是 2的0次方=1,
    权2=2的1次方=2,
    权3=2的2次方=4如此类推如果用户甲 拥有权2和权3的权限  表示 为  权2+权3之和=2+4=6,如此类推查询时使用 Select .... where (用户权限 & 权限值)<>0  来查找是否存在相应的权限这样的做法好处是速度快,并且符合第三范式规则
      

  4.   

    不意思我这两天不在,回老家过清明了没有时间看贴
    我的问题解决了
    我用Len 函数和mid函数来定位字符串查询