本帖最后由 chirea 于 2011-06-09 11:16:26 编辑

解决方案 »

  1.   

    太爽了!
    用户自己设置奖金数,还设置发奖金部门.
    我想...
    我这个月奖金1万...啊不,5万,5万够了.
    发奖金部门...
    貌似不能写CSDN...
      

  2.   


    /*==============================================================*/
    /* Table: 奖项表                                           */
    /*==============================================================*/
    create table Awards (
       奖项ID             int                  identity,
       部门ID             varchar(20)          null,
       奖项名称           nvarchar(30)         null,
       金额                   int                  null,
       constraint PK_AWARDS primary key (AwardsID)
    )
    /*==============================================================*/
    /* Table: 员工表                                                       */
    /*==============================================================*/
    create table Awards (
       员工编号              int                  identity,
       员工职位ID             varchar(20)          null,
       奖项名称           nvarchar(30)         null,
                          int                  null,
       constraint PK_AWARDS primary key (AwardsID)员工表里面奖项名称值为01,02,03
    但这样可能不合理.
    因为我重点要显示的结果这样做的话不行.
      

  3.   

    1.部门表
    部门id 部门名称2.人员表
    人员id 人员编号 人员名称,部门id3.奖项表
    部门id 奖项 金额今天收到你的留言了,数据库这方面也不是很清楚,上面是我凭经验弄的,具体你还是要根据自己
    的实际情况进行设计,甚至你也可以把几种情况都用少量数据模拟一下,根据结果看一看那种比较
    适合
      

  4.   


    create table 奖项表  --有不同的奖项怎么由用户自已添加相应的奖项(用户直接把奖项信息插入)
    (奖项ID int,
     [奖项Name] nvarchar(10))create table 部门表
    (部门ID int,
     部门名称 nvarchar(10))create table 部门奖项关系表  --奖项添加完后,由用户设置相应的奖项隶属于那个部门.  
                                 --考虑每个部门有多个奖项,各部门奖项数不等,而且部门A有的奖项在部门B可能也有
    (部门ID int,
     奖项ID int,
     默认奖金 int)insert 奖项表            --这里添加奖项,并不影响 部门奖项关系表,只是某个部门需要设奖项时,在 部门奖项关系表添加记录就可以了
    select 1,'质量奖' union all
    select 2,'生产奖' union all
    select 3,'安全奖' union all
    select 4,'什么什么奖' insert 部门表 
    select 1,'部门A' union all
    select 2,'部门B' union all
    select 3,'部门C' union all
    select 4,'部门D'insert 部门奖项关系表
    select 1,1,300 union all   --部门A 有'质量奖'、'生产奖',在部门A中'质量奖'、'生产奖'的 默认奖金分别是 300、200
    select 1,2,200 union all
    select 2,2,400 union all   --部门B 有'生产奖'、'安全奖',在部门B中'生产奖'、'安全奖'的 默认奖金分别是 400、250
    select 2,3,250 union all
    select 3,1,150 union all   --部门C 有'质量奖'、'安全奖'、'什么什么奖',在部门C中'质量奖'、'安全奖'、'什么什么奖'的 默认奖金分别是 150、130、160
    select 3,3,130 union all
    select 3,4,160 
                               --部门D 暂时没有设奖项--比如我要查询各个部门的奖项分配情况select D.*,
     isnull(J.奖项ID,'') as 奖项ID ,
     isnull(J.[奖项Name],'') as [奖项Name],
     isnull(C.默认奖金,'') as 默认奖金
    from 部门表 as D 
    left join 部门奖项关系表 C on D.部门ID=c.部门ID
    left join 奖项表 J on J.奖项ID=C.奖项ID部门ID        部门名称       奖项ID        奖项Name     默认奖金
    ----------- ---------- ----------- ---------- -----------
    1           部门A        1           质量奖        300
    1           部门A        2           生产奖        200
    2           部门B        2           生产奖        400
    2           部门B        3           安全奖        250
    3           部门C        1           质量奖        150
    3           部门C        3           安全奖        130
    3           部门C        4           什么什么奖      160
    4           部门D        0                      0(8 row(s) affected)希望帮到你~~