我已经在mysql中完成了这个查询,但我不知道如何在knex.raw中执行此操作。
select ((select leave_trackers.available_leaves from leave_trackers) -
(SELECT ((DATEDIFF('2018-06-11', '2018-06-01') + 1) -
(WEEK('2018-06-11') - WEEK('2018-06-01')) -
(case when weekday('2018-06-11') = 6 then 1 else 0 end) -
(SELECT IFNULL(sum(total), 0)
from
(
select count(holidays.date) as total
FROM holidays, leave_applications
WHERE holidays.date between '2018-06-01' and '2018-06-01'
GROUP BY holiday_id) as holiday_leave
)
) as available_leaves
FROM leaves
group by leave_id
));
有人可以帮我将其转换为 knex.raw 吗?
最佳答案
knex.raw(`
select ((select leave_trackers.available_leaves from leave_trackers) -
(SELECT ((DATEDIFF('2018-06-11', '2018-06-01') + 1) -
(WEEK('2018-06-11') - WEEK('2018-06-01')) -
(case when weekday('2018-06-11') = 6 then 1 else 0 end) -
(SELECT IFNULL(sum(total), 0)
from
(
select count(holidays.date) as total
FROM holidays, leave_applications
WHERE holidays.date between '2018-06-01' and '2018-06-01'
GROUP BY holiday_id) as holiday_leave
)
) as available_leaves
FROM leaves
group by leave_id
))
`).then(res => console.log(res));
如果这不起作用,我们需要有关问题所在的更多信息。
关于mysql - 如何在node.js中减去knex.raw中的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50699834/