SQL查询,如果没有记录返回连接的记录
我有以下SQL Server查询:SQL查询,如果没有记录返回连接的记录,sql,sql-server,Sql,Sql Server,我有以下SQL Server查询: SELECT @alloweddays as alloweddays, @prevalloweddays as prevalloweddays, ISNULL(COUNT(0),0) as useddays, CASE WHEN COUNT(0) > @alloweddays THEN COUNT(0) - @alloweddays ELSE 0 END as daysinadvance, CASE WHEN @
SELECT
@alloweddays as alloweddays,
@prevalloweddays as prevalloweddays,
ISNULL(COUNT(0),0) as useddays,
CASE WHEN COUNT(0) > @alloweddays THEN COUNT(0) - @alloweddays ELSE 0 END as daysinadvance,
CASE WHEN @alloweddays > COUNT(0) THEN @alloweddays - COUNT(0) ELSE 0 END as remainingdays,
temp.prevremainingdays
FROM
employee_holiday_item hi
JOIN
(SELECT
CASE WHEN @prevalloweddays > COUNT(0) THEN @prevalloweddays - COUNT(0) ELSE 0 END as prevremainingdays,
hi.employeeid
FROM
employee_holiday_item hi
WHERE
hi.employeeid = 351
AND hi.isactive = 1
AND hi.date BETWEEN @prevstartperiod AND @prevendperiod
GROUP BY
hi.employeeid) temp ON temp.employeeid = hi.employeeid
WHERE
hi.employeeid = 351
AND hi.isactive = 1
AND hi.date BETWEEN @startperiod AND @endperiod
GROUP BY
temp.prevremainingdays
如果第一次选择中没有记录,则不会返回任何记录,但我希望至少获得JOIN select记录
此查询获取员工在实际年份请求的假期。join获取上一个期间的未使用天数,因此如果员工在实际年份中没有假期请求,我希望至少看到上一个期间的未使用天数
我在考虑有两个完整的单独的选择,然后只做联合所有,但不知道这是最好的方式做它
有什么线索吗?改变
...
FROM employee_holiday_item hi
JOIN(
SELECT
CASE WHEN @prevalloweddays ...
到
这是说,采取一切从右边的加入,并返回它无论什么。。。如果在联接的左侧返回结果,也将返回结果。阅读有关内部联接、外部联接、左侧联接和右侧联接的内容:
...
FROM employee_holiday_item hi
RIGHT OUTER JOIN(
SELECT
CASE WHEN @prevalloweddays ...