读书人

人才招聘程序做筛选求达人给一个S

发布时间: 2012-03-30 17:32:09 作者: rapoo

人才招聘程序,做筛选,求达人给一个SQL语句思路。我可能把问题想复杂了,迷茫了
先大体描述一下:

1.已知企业的职位要求表(比如:企业要求会JAVA,年龄35等等反正就是企业的要求)
2.已知人员基本信息表。(里面也包含自己主攻什么专业,薪资要求啦,自己的年龄啦等等)

业务需求:

在已知这2个表的基础上,现在企业要主动查询符合该企业的人员信息,请问我应该怎么做?

比如:现在企业要求查询符合该企业某职位要求的人员,要求为,计算机类别,.NET工作的人员,该人员等级高于三级,薪酬不超过5000的人的所有基本信息


SQL code
USE [master]GO/****** 对象:  Table [dbo].[Table_Emp]    脚本日期: 02/20/2012 15:36:09 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Table_Emp](    [Fid] [int] IDENTITY(1,1) NOT NULL,    [FEmpName] [varchar](50) NULL,    [Fsex] [char](10) NULL,    [FHobby] [varchar](50) NULL,    [FAge] [int] NULL,    [FtypeID] [int] NULL,    [FclassID] [int] NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Emp', @level2type=N'COLUMN',@level2name=N'FEmpName'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Emp', @level2type=N'COLUMN',@level2name=N'Fsex'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'爱好' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Emp', @level2type=N'COLUMN',@level2name=N'FHobby'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Emp', @level2type=N'COLUMN',@level2name=N'FAge'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从事方向ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Emp', @level2type=N'COLUMN',@level2name=N'FtypeID'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从事类别ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Emp', @level2type=N'COLUMN',@level2name=N'FclassID'

--人员数据
1张三男 踢球301030120201
2张三男 音乐301030420202
3张三男 游泳301030220210
4李四男 读书251030420208
5小红女 音乐251030420202

SQL code
USE [master]--企业要求表GO/****** 对象:  Table [dbo].[Table_Ent]    脚本日期: 02/20/2012 15:36:27 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Table_Ent](    [Fid] [int] IDENTITY(1,1) NOT NULL,    [FEntName] [varchar](50) NULL,    [FHobby_yaoqiu] [varchar](50) NULL,    [FAge_yaoqiu] [int] NULL,    [FtypeID_yaoqiu] [int] NULL,    [FclassID_yaoqiu] [int] NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Ent', @level2type=N'COLUMN',@level2name=N'FEntName'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'兴趣要求' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Ent', @level2type=N'COLUMN',@level2name=N'FHobby_yaoqiu'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄要求' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Ent', @level2type=N'COLUMN',@level2name=N'FAge_yaoqiu'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从事方向要求' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Ent', @level2type=N'COLUMN',@level2name=N'FtypeID_yaoqiu'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类别要求' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_Ent', @level2type=N'COLUMN',@level2name=N'FclassID_yaoqiu'


--企业要求数据
1北京牛X公司音乐23null10304





最后查询出来的结果就是:显示符合要求的人员的基本信息(例如:select FEmpName as 符合要求的人员姓名 from 后面咋写?)

[解决办法]
如果 人员表 中的最后两个ID一定要和 企业要求表 中最后两个ID相符楼主给出的测试数据'北京牛X公司'在人员表中应该是没有符合要求的记录吧?
Select a.Fid,a.fempname,b.fentname
From table_emp a,table_ent b
where b.fhobby_yaoqiu like a.fhobby+'%' and a.fage >= b.fage_yaoqiu
楼主可以试试上面的语句(最后两个ID没有做要求,如果有要求可以再跟两个And)
以上语句要求显示人员表中‘爱好’匹配‘公司要求表’中兴趣爱好 且 年龄最小为‘公司要求表’中要求的年龄.

读书人网 >SQL Server

热点推荐