我正在努力延长病假和员工信息的天数。
我有两张桌子
一个是记录病假(LVE)的表,另一个是员工表,其中包含员工数据(员工),例如就业状况栏(pos_statusa)
通过下面的查询,我得到了重复的结果 - 相同的职业数,休假类型,离开开始,离开结束和职位状态。
我在这里做错了什么?
SELECT RTRIM(DET_NUMBER) AS DET_NUMBERA,
RTRIM(LVE_TYPE_CD) AS LVE_TYPE_CD,
l.LVE_START,
l.LVE_END,
l.LVE_HOUR_TKN,
l.LVE_DAY_TAKE,
e.pos_statusa
FROM dbo.LVE as l
LEFT JOIN Staff as e
ON l.DET_NUMBER = e.DET_NUMBERA COLLATE SQL_Latin1_General_CP1_CI_AS
WHERE (LVE_START > = '2017-02-01'
AND LVE_END < '2018-02-01')
AND LVE_TYPE_CD IN ('SIC','USIC')
干杯
答案 0 :(得分:0)
您是否尝试添加&#39; Distinct&#39; SELECT之后?
答案 1 :(得分:0)
如果您只需要在LVE表和员工表中都有数据的记录,那么在满足您的条件后,请使用JOIN而不是JOIN。
SELECT RTRIM(DET_NUMBER) AS DET_NUMBERA,
RTRIM(LVE_TYPE_CD) AS LVE_TYPE_CD,
l.LVE_START,
l.LVE_END,
l.LVE_HOUR_TKN,
l.LVE_DAY_TAKE,
e.pos_statusa
FROM dbo.LVE as l
JOIN Staff as e
ON l.DET_NUMBER = e.DET_NUMBERA COLLATE SQL_Latin1_General_CP1_CI_AS
WHERE (LVE_START > = '2017-02-01'
AND LVE_END < '2018-02-01')
AND LVE_TYPE_CD IN ('SIC','USIC')
答案 2 :(得分:0)
感谢您的帮助。
它看起来像一个简单的&#39; DISTINCT&#39;已经成功了!