mysql - 如何在node.js中减去knex.raw中的查询

标签 mysql node.js knex.js bookshelf.js

我已经在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/

相关文章:

php - 如何在sql中选择可能的行

node.js - 如何在elasticsearch中对多个字段进行模糊查询?

mysql - 使用 Join 和 Group By 计算行数 - mysql 、 knex

javascript - Knex 迁移失败,出现错误 : The query is empty

c# - ASP.Net C# - 根据条件设置 MySQL 查询和参数

mysql - 在和或之间选择

mysql - 自定义排序依据+分组依据

javascript - https可调用云函数不返回值

node.js - 在 Node 中调用 child_process.exec 就像在特定文件夹中执行一样

node.js - 使用 SQLite3 进行单元测试