简体   繁体   中英

SQL Unable to Insert Additional Condition

Below is my SQL query:

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();

May I know how can I put in the additional condition OR jobinfo.last_date > DateTime.Now ?

Or do I need to implement another join statement with the same table but with the 2nd condition this time.

I am using SQL Server Management Studio 2014.

Thank you.

Try this:

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();
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 and jobinfo.last_date == null and jobinfo.last_date > DateTime.Now)


               //new insertion end

               orderby leavetype.Description ascending

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

so i have added the where condition inside the join

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM