У меня вопрос о SQL Server.Разница дней в SQL Server
Таблица: holidaylist
Date | weekendStatus | Holidaystatus
2015-12-01 | 0 | 0
2015-12-02 | 0 | 0
2015-12-03 | 0 | 0
2015-12-04 | 1 | 0
2015-12-05 | 1 | 0
2015-12-06 | 0 | 1
2015-12-07 | 0 | 0
2015-12-08 | 0 | 0
2015-12-09 | 0 | 1
2015-12-10 | 0 | 0
2015-12-11 | 0 | 0
2015-12-12 | 1 | 1
2015-12-13 | 1 | 0
Таблица: emp
empid | doj | dos
1 | 2015-12-01 | 2015-12-06
2 |2015-12-01 | 2015-12-13
3 |2015-12-03 |2015-12-13
Я хочу получить разницу дней от дос-ДЮ withoutweekenstatusandholidaysstatus и includeweekendandholidaystatus
Я хочу вывода, как это:
Empid | doj | dos |includeweekendandholidays | witoutincludeweekendandholidayslist
1 | 2015-12-01 |2015-12-06 | 5 | 3
2 | 2015-12-01 |2015-12-13 | 12 | 8
3 | 2015-12-03 |2015-12-13 | 10 | 6
Я попробовал этот запрос:
select
a.empid, a.doj, a.dos,
case
when b.weekendstatus = 1 and c.Holidaystatus = 1
then datediff(day, c.date, b.date)
end as includeweekenandholidays
case
when b.weekendstatus != 1 or c.Holidaystatus = 1
then datediff(day, c.date, b.date)
end as witoutincludeweekendandholidayslist
from
emp a
left join
holidaylist b on a.doj = b.date
left join
holidaylist c on a.dos = c.date
выше запрос не дал ожидаемого результата, пожалуйста, скажите мне, как написать запрос для выполнения этой задачи в SQL Server
Что это значит 'withoutweekenstatusandholidaysstatus и includeweekendandholidaystatus'? –
Попробуйте присоединиться к вашим таблицам один раз, используя [date] МЕЖДУ [doj] И [dos]. Это даст вам одну строку за каждый день между датой начала и окончания. Вы можете отфильтровать записи, которые вы не хотите в предложении WHERE. Теперь у вас будут только нужные записи, которые вы можете использовать COUNT. –
нам нужны дни разницы b/w dos и doj для каждого empid и output need includeweekenandholidayststatusdays означает, сколько дней работало сweekenstatusandholidays, без wwkenstatusandholidaysstatus означает, что нужно найти, сколько дней он работал без праздников и дней недели и выходных дней, чтобы найти holidaylistandweekendlist посмотреть в праздничный стол table.please сказать мне как написать запрос для достижения этой задачи в sql-сервере – ravi