首页 > 解决方案 > SQL 无法插入附加条件

问题描述

下面是我的 SQL 查询:

var staffLeaves = (from staffLeave in db.StaffLeaves
                   join leavetype in db.LeaveTypes
                   on staffLeave.LeaveID equals leavetype.LeaveTypeID

                   join staff in db.Staffs
                   on staffLeave.StaffID equals staff.StaffID
                   where staffLeave.Year == latest_year.Year

                   //new insertion start

                   join jobinfo in db.JobInfo
                   on staffLeave.StaffID equals jobinfo.staff_id
                   where jobinfo.last_date == null
         error --> OR jobinfo.last_date > DateTime.Now

                   //new insertion end

                   orderby leavetype.Description ascending

                   select new { staffLeave = staffLeave, staff = staff, leavetype = leavetype }).AsQueryable();

我可以知道如何加入附加条件OR jobinfo.last_date > DateTime.Now吗?

或者我是否需要join用同一个表但这次使用第二个条件来实现另一个语句。

我正在使用 SQL Server Management Studio 2014。

谢谢你。

标签: c#sqlsql-server

解决方案


试试这个:

var staffLeaves = (from staffLeave in db.StaffLeaves
                   from leavetype in db.LeaveTypes
                   from staff in db.Staffs
                   from jobinfo in db.JobInfo
                   where staffLeave.LeaveID == leavetype.LeaveTypeID && 
                   staffLeave.LeaveID == leavetype.LeaveTypeID && 
                   staffLeave.Year == latest_year.Year &&
                   staffLeave.StaffID == jobinfo.staff_id &&
                   (jobinfo.last_date == null || jobinfo.last_date > DateTime.Now)
                   orderby leavetype.Description ascending
                   select new { staffLeave = staffLeave, staff = staff, leavetype = leavetype }).AsQueryable();

推荐阅读